你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32f103rct6的代码移植到stm32f103c8t6

[复制链接]
STMCU小助手 发布时间:2021-7-16 16:28
目前市面上见的较多的STM32单片机一般都是开发板,由于这些开发板又很丰富的例程,因此使用起来非常方便,但是我们实际在应用的时候,有时候可能用不了那么多的管脚,因此会造成管脚资源的浪费,而且管脚多的成本也会很高。同时这些STM32单片机的基础的库基本都是一样的,因此理论上来说,应该是可以进行移植的,博主今天来分享一下代码移植的方法。本次采用stm32f103rct6的代码移植到stm32f103c8t6。其他STM32单片机之间的移植方式和这个类似,大家要学会举一反三。
本次通过将正点原子stm32rct6的串口例程移植到stm32f103c8t6中。
7 o8 J7 C: m# V) c' h  p
1. 打开工程之后点击品旁边的魔术棒,之后选择decice将单片机类型选择为STM32F103C8.如下图所示
1.png 2.png

' e, {" y: {; A! {% L2 C# r- t# t
2 g) o" L; n1 F3 d

+ P2 j/ k/ a1 e& n+ ~
2.在Target选项卡中,将晶振改成板子上的晶振大小,我的是8MHZ,因此改8。如下图所示
3.png
! I; }2 K1 q* a. k! O% G
3.在C/C++选项卡中,将Define从STM32F10X_HD,USE_STDPERIPH_DRIVER改成STM32F10X_MD,USE_STDPERIPH_DRIVER  。因为咱们的c8t6是middle型的单片机。有时候在碰到一个没用的单片机,不知道怎么改的时候,我觉得可以去找一个 哪一个单片机的例程,把他改成里边对应的 就可以了。修改过后如下图所示
4.png

* G% N, \: X# y1 C
4.在Debug 选项中,修改对应的下载器的设置,我这里用的是STLINK,选择之后,点击settings, 当然选择SW模式进行调试,之后在settings的Flash Download选项卡内,可以看到当前的programming algorithm为High-denity的高密度的内存(也就是闪存),但是我们的c8t6是middle中密度的内存,因此我们将已有的remove移除,之后add添加一个新的正确的内存即可。这个时候有可能会遇到一个很尴尬的问题,就是没有我们要找的算法,此时我们就需要去官网下载一个文件即可。http://www2.keil.com/mdk5/legacy
下载安装之后即可发现多了好多,选择即可。选择好的如下图所示:
5.png 6.png 7.png 8.png

: L8 T+ U0 Y/ G3 @
5.之后需要将启动文件由startup_stm32f10x_md.s修改为startup_stm32f10x_hd.s即可。先将startup_stm32f10x_md.s右键移除,之后双击CORE添加startup_stm32f10x_hd.s即可。修改完成的图如下:
9.png
4 K0 H8 _% e1 h7 r, G
6.此时编译工程下载之后,程序已经可以运行,但是有的时候会出现始终变慢的情况,需要在主函数里边加一个SystemInit();
即可。加完的结果如下:
10.png
此时移植完成,通过STLINK可以下载到stm32c8t6单片机上,并顺利运行。
* U  R) ?' M7 O7 D6 x0 G8 X2 q* R
赞 收藏 评论0 发布时间:2021-7-16 16:28

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版