stm32f407 初始时钟是多少?怎么改
kuaidi.ping-jia.net 作者:佚名 更新日期:2024-08-26
stm32f407 初始时钟是多少?怎么改
用于设置MCU的时钟,两个参数,前一个(OSC)用于选择内部晶振还是外部晶振,这能是HSE或者HSI,这个在H文件中有定义;
第二个参数 Clock,范围0~25,对应不同的主频,具体值看程序里面switch语句部分就明白了;
然后要说一点,HSE_VALUE 和 HSI_VALUE是外部和内部晶振的频率,这个值在 stm32f4xx.h 里面有定义的,如果是你自己做的板子,那么就需要根据你所采用的晶振数值到stm32f4xx.h里面把 HSE_VALUE 修改一下即可;
SysClockGet(void)函数用来获取当前MCU主频,返回值的单位是Hz;
再PS:用此程序,可以动态的调整MCU主频,就是在MCU运行中,根据实际工作量的多少升降主频,我试过,蛮好使的,而且可以超频,216MHz没有问题,240MHz要看芯片体质,有些可以长时间运行,260MHz,更要看体质了,反正我的芯片是真呢过跑个几分钟,然后就死机了。
玩单片机,数据手册是必须的
你买板子也有很多例子
STM32启动时默认为内部RC震荡 所以在使用的时候,首先要对时钟进行初始化 等待外部晶振稳定后 然后才对外部晶振进行分频或者倍频 最后才是对APB总线时钟及模块时钟进行配置。
默认是内部时钟,需要写程序修改
unsigned char SysClockSet(unsigned char OSC, unsigned char Clock)用于设置MCU的时钟,两个参数,前一个(OSC)用于选择内部晶振还是外部晶振,这能是HSE或者HSI,这个在H文件中有定义;
第二个参数 Clock,范围0~25,对应不同的主频,具体值看程序里面switch语句部分就明白了;
然后要说一点,HSE_VALUE 和 HSI_VALUE是外部和内部晶振的频率,这个值在 stm32f4xx.h 里面有定义的,如果是你自己做的板子,那么就需要根据你所采用的晶振数值到stm32f4xx.h里面把 HSE_VALUE 修改一下即可;
SysClockGet(void)函数用来获取当前MCU主频,返回值的单位是Hz;
再PS:用此程序,可以动态的调整MCU主频,就是在MCU运行中,根据实际工作量的多少升降主频,我试过,蛮好使的,而且可以超频,216MHz没有问题,240MHz要看芯片体质,有些可以长时间运行,260MHz,更要看体质了,反正我的芯片是真呢过跑个几分钟,然后就死机了。
玩单片机,数据手册是必须的
你买板子也有很多例子