一、新建几个文件夹
新建一个template文件夹,下面包含CORE、stm32f103fwlib、user三个子文件夹(OBJ删掉)
CORE:放启动文件(startup_stm32f10x_hd)、和内核文件(CM3)
user:放新建工程
stm32f103fwlib:stm32源文件和头文件(src和inc)
二、stm32源码移植
1.移植源码文件:
- STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver 下面 src,inc 文件夹 copy 到我们刚才建立的 STM32F10x_FWLib 文件夹下面。
2.移植启动文件:
- STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport 下面,将文件 core_cm3.c和文件core_cm3.h 复制到CORE
- STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm 下面,将里面 startup_stm32f10x_hd.s 文件复制到 CORE 下面。
注意:根据不同的容量选择不同的启动文件,flash>=256k(大容量,选择hd),64<=flash<=128k(中容量,选择md),64k>flash(小容量,选择ld)
3.移植系统文件和中断相关文件:
- STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 下面 将里面的三个文件 stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h,复制到我们的USER 目录之下。
- STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template 下面的 4 个文 件 main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h 复制到 USER 目录下面。
三、keil新建工程
Project –>New Uvision Project ,然后将目录定位到刚才建立的文件夹 Template ->USER,我们的工程文件就都保存到 USER 文件夹下面。工程命名为 XXXX,点击保存。然后选择芯片包,点击 OK,MDK 会弹出 Manage Run-Time Environment 对话框,选择取消
四、keil工程配置
1.新建USER、FWLIB、CORE分组,并将源文件加入到工程中
2.配置头文件路径
3.勾选生成.hex文件
4.配置全局变量:
因为 3.5 版 本的库函数在配置和选择外设的时候通过宏定义来选择的,所以我们需要配置一个全局的 宏定义变量。按照步骤 16,定位到 c/c++界面,然后填写 “STM32F10X_HD,USE_STDPERIPH_DRIVER”到 Define 输入框里面(请注意,两个标识符 中间是逗号不是句号,如果您不能确定您输入的是正确的,请直接打开我们光盘任何一个 库函数实例,然后复制过来这串文字即可)。这里解释一下,如果你用的是中容量那么 STM32F10X_HD 修改为 STM32F10X_MD,小容量修改为 STM32F10X_LD.
5.删除main.c文件内容
备注:
芯片包官网:https://www.keil.com/dd2/pack/
stm32固件库下载:st.com/content/st_com/en.html
至此移植完成