预准备——STM32开发环境搭建

一、几个重要文件的介绍
1.system_stm32f10x.csystem_stm32f10x.h主要实现的功能是设置系统以及总线时钟,其中SystemInit()函数在系统启动时都要调用(一般在启动文件中就被执行了)。

2.stm32f10x.h主要是系统寄存器定义申明和内存操作封装。

3.stratup_stm32f10x_hd.s启动文件(适用于Flash大于256K的芯片),主要进行初始化堆栈SP=,中断向量表以及中断定义,配置系统时钟,最后由启动文件调用main()函数。

二、新建工程可能会遇到的几个问题
1.工程建立后,MDK5.1以后的版本会在工程文件所在的目录下生成名为Objects和Listings的两个文件夹,用以存放编译过程中产生的中间文件,这与之前的版本不一致。为了兼容以前版本的MDK,可以在工程根目录下新建名为OBJ的文件夹,然后在MDK->[Option]->[Output]中把存放位置改到OBJ,在MDK->[Option]->[Listings]中把位置改到User。

2.官方固件库文件srcinc需要放在工程目录下。

3.core_cm3.c、core_cm3.h和启动文件startup_stm32f10x_hd.s需放在工程目录下,独立存放。

4.stm32f10x.h、system_stm32f10x.c、system_stm32f10x.hstm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h也要放在工程目录User文件夹下。
(以上2.3.4中的文件均来自官方固件包)

5.需要在MDK->[Option]->[C/C++]->Include Paths中添加工程用到的所有头文件的路径,需要注意的是MDK只会在一级目录中查找,所以Path一定要定位到最后一级子目录。

6.因为 3.5 版本的库函数在配置和选择外设的时候通过宏定义来选择的,所以我们需要配置一个全局的宏定义变量,在MDK->[Option]->[C/C++]->Define输入框中定义STM32F10X_HD,USE_STDPERIPH_DRIVER。值得一提的是,如果你用的是中容量那么STM32F10X_HD修改为STM32F10X_MD,小容量修改为STM32F10X_LD

7.软件仿真配置。[Option]里确认芯片型号和外接晶振,然后设置Dialog DLL分别为:DARMSTM.DLLTARMSTM.DLLParameter均为:-pSTM32F103ZE,用于设置支持 STM32F103ZE 的软硬件仿真。
预准备——STM32开发环境搭建