系列文章目录
当使用Keil对STM32系列单片机开发时,如果使用的是库函数,那么不同型号单片机的工程项目文件是可以直接移植的。只需要按照下面的步骤修改对应的芯片,就可以直接将工程移植过去,不用重新编写。
移植工程之后,还需要注意的是要确保工程中用到的IO口,在两个芯片中都有,并且要修改为对应的引脚。如果工程中使用IO在一个芯片上有,另一个芯片上没有,是不能直接移植的。如果引脚排序不一样,需要更改 IO口后才能使用。
如上图所示,即使是相同型号的C8T6,如果制作的开发板型号不同,IO口的排序也可能不相同。所以移植的时候引脚位置要确认好,看看位置不同是否影响使用。
下面将演示将STM32F103RCT6单片机上开发的工程,移植到STM32F103C8T6单片机上。
移植步骤
1. 更改芯片型号
打开魔术棒,点击Device,选中STM32F103C8芯片,点击OK。将芯片型号由STM32F103RC 改为 STM32F103C8。
2. 更改宏定义
还是在魔术棒中,点击C/C++,将宏定义STM32F10X_HD 改为 STM32F10X_MD,因为STM32F103RC为大容量芯片,而 STM32F103C8为中等容量芯片,所以要将HD改为MD。注意不同的单片机宏定义的内容不一样。
如果想知道这个是怎么得到的,打开stm32f10x.h,拉到最下面,就可以看到这个定义
3. 更改启动文件
将CORE/Source Group(每个人设置的名称不一样)里面的后缀为hd.s的启动文件换成md.s的启动文件。
对于其他型号的单片机如何选择启动文件,可以参考下面的表格:(对这部分不太熟悉的可以看一下下面两篇文章:)
4. 更改Debug选项
还是在魔术棒中,点击Debug选项,在Debug中选择烧写器为ST-LINK(如果用的J-link就选J-link Debugger),然后点后面的Settings按钮。
打开的界面中选择 Flash DownLoad 选项,底下是STM32F103RC单片机的flash文件,为512k,而现在需要换成用的STM32F103C8单片机flash为128K,所以要将原来的文件删除掉,重新添加文件。点击默认芯片,然后点击Remove。
删除掉原文件后,再点Add按钮添加新文件。在打开的对话框中选择第一个文件 128K大小,点Add按钮,添加新文件。这时flash文件大小就变成128k了,最后点确定按钮。
接下来就是一路OK键。
5. 编译测试
现在移植工作就完成了,重新编译工程,如果没有错误就可以直接使用了。
相关资料包
固件库链接;
【超级会员V7】通过百度网盘分享的文件:STM32F10....zip
链接:https://pan.baidu.com/s/1bu8xFf5l7Bnv-Xj8F6MmkA?pwd=1g28
提取码:1g28
复制这段内容打开「百度网盘APP 即可获取」