一、硬件上的衔接问题
假如运用内部RC振荡器而不运用外部晶振,请依照如下办法处理:
1)关于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。
2)关于少于100脚的产品,有2种接法:
i)OSC_IN和OSC_OUT别离经过10K电阻接地。此办法可进步EMC功用。
ii)别离重映射OSC_IN和OSC_OUT至PD0和PD1,再装备PD0和PD1为推挽输出并输出0。此办法能够减小功耗并(相对上面i)节约2个外部电阻。
STM32时钟体系结构图
时钟是STM32单片机的脉息,是单片机的驱动源。运用任何一个外设都有必要翻开相应的时钟。这样的优点便是,假如不运用一个外设的时分,就把它的时钟关掉,然后能够下降体系的功耗,到达节能,完成低功耗的作用。
STM32单片机的时钟能够由以下3个时钟源供给:
1、HSI:高速内部时钟信号STM32单片机内带的时钟 (8M频率), 精度较差
2、HSE:高速外部时钟信号,精度高。
来历:i. HSE外部晶体/陶瓷谐振器(晶振);
ii.HSE用户外部时钟
3、LSE:低速外部晶体 32.768kHz 首要供给一个准确的时钟源 一般作为RTC时钟运用
STM32单片机的将时钟信号(例如HSE)经过分频或倍频(PLL)后,得到体系时钟,体系时钟经过分频,发生外设所运用的时钟。
上图为STM32整个时钟架构。
为了便于更好了解STM32单片机的时钟,下面以HSE时钟的运用为例。
设置时钟流程:
1、将RCC寄存器从头设置为默认值RCC_DeInit
2、翻开外部高速时钟晶振HSERCC_HSEConfig(RCC_HSE_ON);
3、等候外部高速时钟晶振作业HSEStartUpStatus = RCC_WaitForHSEStartUp();
4、设置AHB时钟RCC_HCLKConfig;
5、设置高速AHB时钟RCC_PCLK2Config;
6、设置低速速AHB时钟RCC_PCLK1Config
7、设置PLLRCC_PLLConfig
8、翻开PLLRCC_PLLCmd(ENABLE);
9、等候PLL作业while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
10、设置体系时钟RCC_SYSCLKConfig
11、判别是否PLL是体系时钟while(RCC_GetSYSCLKSource() != 0x08)
12、翻开要运用的外设时钟RCC_APB2PeriphClockCmd()/RCC_APB1PeriphClockCmd()
在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。
HSI是高速内部时钟,RC振荡器,频率为8MHz。
HSE是高速外部时钟,可接石英/陶瓷谐振器,或许接外部时钟源,频率规模为4MHz~16MHz。
LSI是低速内部时钟,RC振荡器,频率为40kHz。
LSE是低速外部时钟,接频率为32.768kHz的石英晶体。
PLL为锁相环倍频输出,其时钟输入源可挑选为HSI/2、HSE或许HSE/2。倍频可挑选为2~16倍,可是其输出频率最大不得超越72MHz。
其间40kHz的LSI供独立看门狗IWDG运用,别的它还能够被挑选为实时时钟RTC的时钟源。别的,实时时钟RTC的时钟源还能够挑选LSE,或许是HSE的128分频。RTC的时钟源经过RTCSEL[1:0]来挑选。
STM32中有一个全速功用的USB模块,其串行接口引擎需求一个频率为48MHz的时钟源。该时钟源只能从PLL输出端获取,能够挑选为1.5分频或许1分频,也便是,当需求运用USB模块时,PLL有必要使能,而且时钟频率装备为48MHz或72MHz。
别的,STM32还能够挑选一个时钟信号输出到MCO脚(PA8)上,能够挑选为PLL输出的2分频、HSI、HSE、或许体系时钟。
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/257551.html