1.首要挑选发动文件:依据自己所用芯片的类型,挑选正确的发动文件。例如挑选STM32F107系列的处理器,咱们就挑选startup_stm32f10x_hd.s。在这个文件里首要要界说自己仓库的巨细,依据自己的需求确认。文件中现已界说好了中止向量的方位及仓库的初始化操作。
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(),发动相应的时钟,不然外设就不能正常作业。