STM32系列:从STM32F103C8T6到STM32F103ZET6的工程移植

一、选择内核文件

首先打开一个stm32f103c8t6的工程。

在CORE文件夹下有两个文件,一个是内核文件core_cm3.c ,一个是启动文件startup_stm32f10x_md.s ,如果要移植到其他型号单片机上,这两个文件要检查一下是否需要改变。下面这张图片显示了不同型号单片机所采用的内核,比如要移植到stm32f4系列的单片机上,那么内核文件就要改变成cm4的内核。此次要移植的目标还是stm32f1系列的单片机,所以内核文件不需要改变。

二、选择启动文件

启动文件是需要改变的,下面是stm32f1系列下不同类型的单片机的启动文件


选择的时候需要根据单片机的容量来选

如何判断单片机的容量呢,可以从芯片型号看出来

stm32f103zet6中的E代表用的是512k的闪存存储器,属于大容量产品。
在Release Notes for STM32F10x CMSIS文档中,可以看到如下描述


但是还是感觉没说清楚,网上又查了一些资料,
大家可以参考一下这篇文章https://blog.csdn.net/weixin_45211835/article/details/123100958
一般大容量的用startup_stm32f10x_hd.s ,中容量的用startup_stm32f10x_md.s ,小容量的用startup_stm32f10x_ld.s 。stm32f103zet6属于大容量,所以启动文件选择startup_stm32f10x_hd.s 。接下来,就要把原来的启动文件startup_stm32f10x_md.s 更换为startup_stm32f10x_hd.s 。
先移除原文件

然后进入固件库的如下目录STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm,复制startup_stm32f10x_hd.s文件到你原来的工程目录中的CORE文件夹下


原来的startup_stm32f10x_md.s就可以删掉。然后在工程中加入新的启动文件startup_stm32f10x_hd.s

加入之后启动文件就替换完成

接下来还需要在工程中修改

将STM32F10X_MD改为STM32F10X_HD

这一步主要是软件根据你的cpu来去掉stm32f10x.h中相应行的注释符。接下来还要更改设备的型号,选择103zet6

接下来编译工程,没有错误,stm32f103c8t6移植为stm32f103zet6成功。
stm32f103c8t6原工程百度网盘链接
https://pan.baidu.com/s/1xIK9iiPa-rxSa8x96WRTug提取码1elk
移植好的stm32f103zet6工程源码百度网盘链接
https://pan.baidu.com/s/1T_J_Um7vnXNS49jlP-bG9Q提取码h3r1

物联沃分享整理
物联沃-IOTWORD物联网 » STM32系列:从STM32F103C8T6到STM32F103ZET6的工程移植

发表评论