STM32固件库V3.5.0的CMSIS文件详细说明
Reset_Handler
通过上面的代码可以看到先执行SystemInit()函数在进入main()函数。SystemInit()函数在文件system_stm32f10x.c中有定义。
2.:这个头文件包含了STM32的大部份定义:
① 定义了芯片的类型,例如:#define STM32F10X_CL
② 定义是否包含标准外设库,#defined
③ 定义外部振荡器频率,#defined
上面的三个定义,最好在编译器选项中定义好,这样就不用修改stm32f10x.h文件,最好不要修改这个文件。
④ 采用枚举的方式定义中断号。
⑤ 包含core_cm3.h,system_stm32f10x.h。
#include "system_stm32f10x.h"
#include
⑥ 定义数据类型,例如:typedef uint32_t
⑦ 定义外设结构体,地址及用到的常量。
⑧ 包含stm32f10x_conf.h来配置外设。
#endif
⑨ 定义位操作的宏。
3.system_stm32f10x.h和system_stm32f10x.c,这两个文件中:
① 定义一个全局变量:extern uint32_t SystemCoreClock:系统时钟频率与此变量的选择有关。
#ifdef SYSCLK_FREQ_HSE
#elif defined SYSCLK_FREQ_24MHz
#elif defined SYSCLK_FREQ_36MHz
#elif defined SYSCLK_FREQ_48MHz
#elif defined SYSCLK_FREQ_56MHz
#elif defined SYSCLK_FREQ_72MHz
#else
#endif
② SystemInit():这个函数就是启动文件中调用的函数。
③ SystemCoreClockUpdate():更新SystemCoreClock的值,与系统频率一致。
注:利用此文件设置系统的时钟具有一定的局限性,所以在编写程序时建议不要用他,而利用标准外设库中的stm32f10x_rcc中的函数进行设置。
①
②
5.core_cm3:与CM3内核相关的操作
6. stm32f10x_it中断实现,在这里编写相应的中断服务函数。
7.还需要注意的一点是:进入main函数后,除了设置嘀嗒时钟和中断外,在操作各外设之前,调用:RCC_AHBPeriphClockCmd(),RCC_APB1PeriphClockCmd(),RCC_APB2PeriphClockCmd(),启动相应的时钟,否则外设就不能正常工作。
STM32固件库CMSIS文 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)