如何将某一款STM32芯片的KEIL工程适配另一款STM32芯片
以同一系列的STM32F103ZET6和STM32F103C8T6为例
前言
小弟研究下了市面上的几款主流开发版,例如原子的精英版使用F103ZET6。相比这类外设丰富的芯片型号,同学们在做具体的课程设计或者项目开发中,只需用到几个外设,从经济和空间的角度考虑,选用同样的信号是不合适的。这里推荐市面上最常见的F103C8T6或者F103C6T6最小系统板,兼具了经济和空间的优势同时能够满足项目目标。那么如何讲前期基于开发板开发的工程快速适配新的芯片呢,只需要对工程执行以下几步。
关键过程
1. 芯片差异
ZET6和C8T6的差异主要在于外设数量(比如定时器数量等),以及RAM/ROM容量等。前者在编写程序时注意即可,后面需要我们在工程文件中进行设置。
Keil中的Pack Installer中展示了两款芯片的容量差异
2. 选择为对应芯片
首先点开魔术棒(Option for Target)- Device,讲芯片选择为STM32F103C8
3. 修改启动文件和预编译宏定义
替换启动文件为中等容量(startup_stm32f10x_md),以及修改对应的Define
其中待替换的startup_stm32f10x_md.s文件在…\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm这个目录下,需要手动加载。
4. 修改芯片容量
修改芯片容量为128k(理论上芯片只有64k的ROM, 但实际出厂时128k,所以这里这样设置没有问题)
结论
All Done, Enjoy!