历史上的今天
今天是:2024年10月17日(星期四)
2018年10月17日 | STM32时钟RCC详解(一)
2018-10-17 来源:eefocus
1、时钟源
在STM32中,一共有5个时钟源,分别是HSI、HSE、LSI、LSE、PLL 。
①HSI 是高速内部时钟, RC 振荡器,频率为8MHz ;
②HSE 是高速外部时钟,可接石英 / 陶瓷谐振器,或者接外部时钟源,频率范围是4MHz – 16MHz ;
③LSI 是低速内部时钟,RC振荡器,频率为40KHz;
④LSE 是低速外部时钟,接频率为32.768KHz的石英晶体;
⑤PLL 为锁相环倍频输出,严格的来说并不算一个独立的时钟源,PLL的输入可以接HSI/2、HSE或者HSE/2 。PLL倍频可选择为2 – 16倍,但是其输出频率最大不得超过72MHz。
其中,40kHz的LSI供独立看门狗IWDG使用,另外它还可以被选择为实时时钟RTC的时钟源。另外,实时时钟RTC的时钟源还可以选择LSE,或者是HSE的128分频。
STM32中有一个全速功能的USB模块,其串行接口引擎需要一个频率为48MHz的时钟源。该时钟源只能从PLL端获取,可以选择为1.5分频或者1分频,也就是,当需使用到USB模块时,PLL必须使能,并且时钟配置为48MHz或72MHz 。
另外STM32还可以选择一个时钟信号输出到MCO脚(PA.8)上,可以选择为PLL输出的2分频、HSI、HSE或者系统时钟。
系统时钟SYSCLK,它是提供STM32中绝大部分部件工作的时钟源。系统时钟可以选择为PLL输出、HSI、HSE 。系系统时钟最大频率为72MHz,它通过AHB分频器分频后送给各个模块使用,AHB分频器可以选择1、2、4、8、16、64、128、256、512分频,AHB分频器输出的时钟送给5大模块使用:
①送给AHB总线、内核、内存和DMA使用的HCLK时钟;
②通过8分频后送给Cortex的系统定时器时钟STCLK;
③直接送给Cortex的空闲运行时钟FCLK;
④送给APB1分频器。APB1分频器可以选择1、2、4、8、16分频,其输出一路供APB1外设使用(PCLK1 ,最大频率36MHz),另一路送给定时器 (Timer)2、3、4倍频器使用。该倍频器根据PCLK1的分频值自动选择1或者2倍频,时钟输出供定时器2、3、4使用。
⑤送给APB2分频器。APB2分频器可以选择1、2、4、8、16分频,其输出一路供APB2外设使用(PCLK2,最大频率72MHz),另外一路送给定时器 (Timer)1 倍频使用。该倍频器根据PCLK2的分频值自动选择1或2倍频,时钟输出供定时器1使用。另外APB2分频器还有一路输出供ADC分频器使用,分频后送给ADC模块使用。ADC分频器可选择为2、4、6、8分频。
需要注意的是定时器的倍频器,当APB的分频为1时,它的倍频值为1,否则它的倍频值就为2。

2、APB1和APB2连接的模块
①连接在APB1( 低速外设 )上的设备有:电源接口、备份接口、CAN、USB、I2C1、I2C2、UART2、UART3、SPI2、窗口看门狗、Timer2、Timer3、Timer4。
注意USB模块虽然需要一个单独的48MHz的时钟信号,但是它应该不是供 USB 模块工作的时钟,而只是提供给串行接口引擎 (SIE) 使用的时钟。USB模块的工作时钟应该是由APB1提供的。
②连接在APB2(高速外设)上的设备有:UART1、SPI1、Timer1、ADC1、ADC2、GPIOx(PA~PE)、第二功能IO口。

上一篇:STM32时钟RCC详解(二)
下一篇:ARM 低功耗电流过大总结
史海拾趣
|
我要用到ADC0804的差分输入端测电压,VIN+输入正电压,VIN- 输入负电压,我的理解是输出端的测量电压应该是(VIN+)-(VIN-),但是结果却不是这样的,所以我向问一下:ADC0804的VIN-端能识别负电压吗? 如果能,在测量差分输入的信号时,程序是不是 ...… 查看全部问答> |
|
讨论下用热电偶测温差的问题,有的书上介绍可以用热电偶反向串联变送器测温差,我的问提是 热电偶反向串联不是线性的,变送器处理的mv值是不等的.例如100度温差,在500度与400度时是4.058mv,而1000度与900度是3.98mv;变送器如何处理????????… 查看全部问答> |
|
我们在LCD上显示字符,当然是希望每个字符的 长 X 高 是相同点阵的方框字,取相应字模时,偏移量也好计算,但是像office word里,它有些字体单个字符的宽度不一样的,例如M 和I ,它是基于何种思想来处理不现宽度的字符送到LCD显示的? 难到一个字节的ASC ...… 查看全部问答> |
|
正在研究 PE 文件的格式,但是对导入表的结构和用法不太明白。 已经能够从PE文件分析出导入表中的,但是不知道怎么解析系统创建的 调转表和调转地址。 我的代码里调用一个系统函数的时候,反汇编(ARM芯片)得到 ;处理参数等 0001287C EB00033 ...… 查看全部问答> |
|
如题,最近做一个东西,需要用到除法运算,但是在IAR编译环境下simulate调试模式下尝试编译了一下,发现比如:如果做3/1024 这样的运算后的结果只能保留除法运算后的整数部分。大家有遇到过相似问题的吗??怎样解决呢?? … 查看全部问答> |
|
STM32串口中断下,接收到的数据如何存入数组中,指点一二论坛的兄弟姐妹 我是想通过串口中断接收到数据验证自己设置的账号密码是否能通过,包括修改密码等操作,但是卡到了现在,麻烦大家帮帮忙 谢谢!… 查看全部问答> |
|
Linux是个人计算机和工作站上的Unix类操作系统。但是,它绝不是简化的Unix。相反,Linux是强有力和具有创新意义的Unix类操作系统。它不仅继承了Unix的特征,而且在许多方面超过了Unix。作为Unix类操作系统,Linux内核具有下列基本特 ...… 查看全部问答> |




