专题三stm32时钟树及相关库函数

专题三stm32时钟树及相关库函数

ID:38771719

大小:89.74 KB

页数:8页

时间:2019-06-19

专题三stm32时钟树及相关库函数_第1页
专题三stm32时钟树及相关库函数_第2页
专题三stm32时钟树及相关库函数_第3页
专题三stm32时钟树及相关库函数_第4页
专题三stm32时钟树及相关库函数_第5页
资源描述:

《专题三stm32时钟树及相关库函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、专题三STM32时钟及相关库函数一、STM32MCU时钟树STM32MCU系统时钟树由系统时钟源、系统时钟SYSCLK和设备时钟等部分组成。图1STM32芯片时钟树从图1可看到,芯片时钟源有4个:1.高速外部时钟HSE(4-16MHz);2.高速内部时钟HSI(8MHz);3.低速外部时钟LSE(32.768kHz);1.低速内部时钟LSI(40kHz)。从图1还可看到,芯片内部系统时钟SYSCLK的来源有3个。1.高速外部时钟HSE(4-16MHz);2.高速内部时钟HSI(8MHz);3.HSE或HSI通过锁相环2-

2、16倍频后的锁相环时钟PLLCLK。上述的系统时钟SYSCLK经AHB预分频器后得到AHB总线时钟HCLK,继而得到APB1和APB2总线时钟。要注意的是:APB1挂接的外设有:DAC、UART2-5,TIM2-7、USB、I2C1-2等;APB2挂接的外设有:ADC1-3,GPIOA-G,TIM1,TIM8等。每次要使用STM32的相关外设,都要先使能对应的时钟。二、STM32的启动2.1STM32的启动模式STM32处理器支持3种系统启动模式,且对应的存储介质均是芯片内置的。在每个STM32的芯片上都有两个引脚BOO

3、T0和BOOT1,这两个引脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序。表1.STM32xx系列处理器的启动模式启动模式的引脚启动模式功能说明BOOT1BOOT0X0用户闪存存储器将用户闪存存储器选为系统启动区域01系统存储器将系统存储器选为系统启动区域11片上SRAM将片上SRAM选为系统启动区域第1种启动方式是最常用的用户FLASH启动,正常工作就在这种模式下,STM32的FLASH可以擦除10万次。第2种方式是系统存储器启动方式,即我们常说的串口下载方式(ISP)。STM32中自带的BootLoa

4、der就是在这种启动方式中,如果出现程序硬件错误的话,可以切换到该模式下重新烧写Flash即可恢复正常。第3种启动方式是STM32内嵌的SRAM启动,该模式用于调试。上述三种模式,各有作用。如果要进行程序下载,就必须将启动模式调整到第二种方式,程序下载完毕后,再回复到第一种方式,就可以正常工作了。2.2STM32的启动文件启动文件:建立工程文件时,keilMDK会提示“复制启动文件STM32F10x.s到项目文件夹下”。但是MDK提示的这个启动文件只定义了3个串口,4个定时器,具体到某个型号,每种STM32芯片都不一样。

5、比如有的芯片器件是有5个串口,6个定时器的,如果用MDK提供的启动文件,就有2个串口,2个定时器找不到定义导致不能使用。在3.5版本的固件库下,有加了后缀的启动文件:Startup_stm32f10x_ld.sStartup_stm32f10x_md.sStartup_stm32f10x_hd.s上面,有后缀ld,md,hd,这三个后缀是什么意思呢?原来是这样的:ld  Low-density      小容量  16-32K md  Medium-density  中容量  64-128Khd  High-densit

6、y      大容量  256-512Kxl         超大容量512-1024Kvl  valuelinedevices超值型cl  Connectivitylinedevices互联型小容量:flash<=32K中容量:64K<=flash<=128K大容量:256K<=flash根据你使用的芯片型号,就可以确定要使用哪种启动文件了。比如,我们使用STM32F103RB,这款芯片是128K的容量,那么就应该选启动文件Startup_stm32f10x_md.s。启动文件主要做了3个工作:1.定义和初始化堆栈;2

7、.定义复位向量并初始化;3.定义中断向量表及其相应的异常处理程序。1.最后,开始main()函数。注意,在3.5版固件库中,升级后的启动文件还调用了system_stm32f10x.c文件中的SystemInit()函数,配置系统时钟到PLL倍频下的72MHz。因此,如果使用新版的启动文件,main()函数就无需再调用SystemInit()函数了。而如果工程文件中包含的是旧版的STM32F10x.s文件,该文件是没有系统时钟配置语句的,因此,用户进入main()函数需要自己调用SystemInit()函数。三、STM3

8、2芯片的时钟设置从前面的图1可以看到,要设置STM32芯片的时钟,有以下几个方面要考虑:1.芯片的时钟源选择HSE,HIS还是其他?2.SYSCLK系统时钟应该选择哪个?3.各总线的分频系数?4.PLL锁相环的倍频系数?5.各个外设对应的时钟是开启呢,还是禁止?上面5个问题,STM32统一用RCC来解决。我们首先来看

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。