STM32f429标准库如何改内部rc时钟工作?

要改变STM32F429的内部RC时钟工作,您可以使用STM32F429标准库的函数来设置和配置系统时钟。
具体步骤如下:
1. 在STM32F429中,内部RC时钟被称为HSI(High Speed Internal)时钟。
2. 要改变HSI时钟的工作频率,您需要设置相关的寄存器和时钟分频器。
3. 首先,使用RCC_DeInit()函数将系统时钟设置为默认状态,使HSI为默认频率。
4. 然后,使用RCC_HSICmd()函数打开或关闭HSI时钟。
5. 使用RCC_PLLConfig()函数配置PLL(锁相环)时钟源和分频系数。
6. 使用RCC_PLLCmd()函数打开或关闭PLL时钟。
7. 最后,使用RCC_SYSCLKConfig()函数将系统时钟设置为所需的时钟源。
以下是一个简单的例子,说明如何将HSI时钟设置为16MHz:
```c
#include "stm32f4xx.h"
int main(void) {
// 设置系统时钟为默认状态
RCC_DeInit();
// 打开HSI时钟
RCC_HSICmd(ENABLE);
// 配置PLL时钟源和分频系数
RCC_PLLConfig(RCC_PLLSource_HSI, 16, 336, 4, 7);
// 打开PLL时钟
RCC_PLLCmd(ENABLE);
// 等待PLL时钟稳定
while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
// 将PLL时钟作为系统时钟
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
// 等待系统时钟切换完成
while (RCC_GetSYSCLKSource() != 0x08);
while (1) {
// 其他代码
}
}
```
以上是通过设置PLL时钟将HSI时钟改为16MHz的例子,您可以根据需要修改分频系数和时钟源来调整HSI时钟的工作频率。
回复
有奖活动 | |
---|---|
分享开发笔记,赚取电动螺丝刀(便携轻巧与无刷电机两款可选) | |
看《关键跃升》,聊聊工作心法、动力、能力、沟通与协作,从五个方面深入交流你的工作心得 | |
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
我要给自己挣一部逻辑分析仪 | |
用知识换取送给亲朋的礼物,做个浪漫的开发者 | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 |
打赏帖 | |
---|---|
Buck电路工作在CCM模式下电感电流的计算公式是什么?被打赏5分 | |
buck电路工作原理被打赏5分 | |
基于MSPM0L1306的MODBUS-RTU协议通讯实验被打赏100分 | |
我想要一部加热台+多合一调试工具被打赏18分 | |
每周了解几个硬件知识+485硬件知识分享被打赏10分 | |
【换取手持数字示波器】树莓派PICO调试器官方固件本地化部署实践被打赏24分 | |
【换取手持数字示波器】分享一个KEIL无法识别CMSIS-DAP调试器的解决办法被打赏20分 | |
【换取手持数字示波器】分享一个自制的ArduinoNano扩展板底板被打赏23分 | |
【换取手持示波器】树莓派PICOW网页烟花被打赏18分 | |
【换取手持示波器】树莓派PICO逻辑分析仪被打赏16分 |