STM32 学习经历:不同系列的代码移植以及启动文件选择指南

以stm32f103rct6的代码移植到stm32f103c8t6为例

本次通过将正点原子stm32rct6的串口例程移植到stm32f103c8t6中。

        1. 打开工程之后点击品旁边的魔术棒,之后选择decice将单片机类型选择为STM32F103C8.如下图所示

 2.在Target选项卡中,将晶振改成板子上的晶振大小,我的是8MHZ,因此改8。如下图所示

3.在C/C++选项卡中,将Define从STM32F10X_HD,USE_STDPERIPH_DRIVER改成 STM32F10X_MD,USE_STDPERIPH_DRIVER  。因为咱们的c8t6是middle型的单片机。有时候在碰到一个没用的单片机,不知道怎么改的时候,我觉得可以去找一个 哪一个单片机的例程,把他改成里边对应的 就可以了。修改过后如下图所示

4.在Debug 选项中,修改对应的下载器的设置,我这里用的是STLINK,选择之后,点击settings, 当然选择SW模式进行调试,之后在settings的Flash Download选项卡内,可以看到当前的programming algorithm为High-denity的高密度的内存(也就是闪存),但是我们的c8t6是middle中密度的内存,因此我们将已有的remove移除,之后add添加一个新的正确的内存即可。这个时候有可能会遇到一个很尴尬的问题,就是没有我们要找的算法,此时我们就需要去官网下载一个文件即可。Documentation – Arm Developer

下载安装之后即可发现多了好多,选择即可。选择好的如下图所示:

 5.之后需要将启动文件由startup_stm32f10x_md.s修改为startup_stm32f10x_hd.s即可。先将startup_stm32f10x_md.s右键移除,之后双击CORE添加startup_stm32f10x_hd.s即可。修改完成的图如下:

 6.此时编译工程下载之后,程序已经可以运行,但是有的时候会出现始终变慢的情况,需要在主函数里边加一个SystemInit();

即可。加完的结果如下:、

此时移植完成,通过STLINK可以下载到stm32c8t6单片机上,并顺利运行。 

以下是芯片启动文件选择指南:

startup_stm32f10x_ld_vl.s: for STM32 Low density Value line devices

startup_stm32f10x_ld.s: for STM32 Low density devices

startup_stm32f10x_md_vl.s: for STM32 Medium density Value line devices

startup_stm32f10x_md.s: for STM32 Medium density devices

startup_stm32f10x_hd.s: for STM32 High density devices

startup_stm32f10x_xl.s: for STM32 XL density devices

startup_stm32f10x_cl.s: for STM32 Connectivity line devices

cl:互联型产品,stm32f105/107系列

vl:超值型产品,stm32f100系列

xl:超高密度产品,stm32f101/103系列

ld:低密度产品,FLASH小于64K

md:中等密度产品,FLASH=64 or 128

hd:高密度产品,FLASH大于128


提示:为了避免每次需要在这些设备之间切换时都修改此文件,可以在工具链编译器预处理器中定义设备。

-低密度器件是STM32F101xx、STM32F102xx和STM32F103xx微控制器
其中flash范围在16-32Kbytes。对应的启动文件为:startup_stm32f10x_ld.s

-低密度超值型器件是STM32F100xx微控制器
其中flash范围在16-32Kbytes之间。对应的启动文件为:startup_stm32f10x_ld_vl.s

-中等密度设备为STM32F101xx、STM32F102xx和STM32F103xx微控制器
其中flash范围在64-128Kbytes之间。对应的启动文件为:startup_stm32f10x_md.s

-中等密度值线设备是STM32F100xx微控制器
其中flash范围在64-128Kbytes之间。对应的启动文件为:startup_stm32f10x_md_vl.s

-高密度设备是STM32F101xx和STM32F103xx微控制器
其中flash范围在256-512Kbytes之间。对应的启动文件为:startup_stm32f10x_hd.s

-高密度值线设备是STM32F100xx微控制器
其中flash范围在256-512 Kbytes之间。对应的启动文件为:startup_stm32f10x_ld_vl.s

-超高密度型器件是STM32F101xx和STM32F103xx微控制器
其中flash范围在512-1024 Kbytes之间。对应的启动文件为:startup_stm32f10x_xl.s

-互联网型设备是STM32F105xx和STM32F107xx微控制器。对应的启动文件为:startup_stm32f10x_cl.s

  • 19
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值