找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3822|回复: 2
收起左侧

不同STM32之间代码的移植需要注意的问题

[复制链接]
ID:86204 发表于 2015-7-20 02:09 | 显示全部楼层 |阅读模式
这个在我做平衡车时时遇到了的,当时也解决了,其实并没有想象中的复杂,可惜当时没有直接将经验写下来,不得不承认好记性不如烂笔头呀。

主要还是写IO口定义的问题,首先找到对应的STM32的芯片的每个IO口的引脚功能图,找到对应的功能相同的引脚而非名字相同的,比如同样代表着USART1-TX的,在STM32F103ZET6里面是这个引脚,在STM32F103RBT6里面是另外一个引脚,那么在代码移植过程中,在定义这个功能引脚的地方就需要改动,能少改的少改,具体的对应的是哪个文件夹我可能记不清楚的,但肯定找得到的,主要就是这方面,不同STM32之间的代码的移植并不是什么难事情,当然日后具体操作遇到些什么问题,还是得及时记录下来,方便日后回忆查看。

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:323651 发表于 2020-12-8 08:52 | 显示全部楼层
参考
https://www.cnblogs.com/vonly/p/7411169.html

1,修改IC为STC32F103C8



2,修改晶振为8.0M

  

3,修改C/C++宏定义,由STM32F10X_HD,USE_STDPERIPH_DRIVER 改为 STM32F10X_MD,USE_STDPERIPH_DRIVER



4,替换启动文件,由startup_stm32f10x_hd.s修改为startup_stm32f10x_md.s



到这里已经没有报错了

5,重新分配各模块引脚定义

这一步做完以后才发现,程序好像跑的慢了10来倍,

群里求助,说是倍频没有设置好,找到一个设置倍频的代码后,发现还是不行.

再搜索原子论坛有人同样遇到相同的问题,在某位大神的回复中找到了答案,就是第6步,

6,系统初始化时调用 SystemInit();

调用SystemInit();以后马上就正常了,

评分

参与人数 1黑币 +30 收起 理由
admin + 30 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:818976 发表于 2020-12-11 21:19 | 显示全部楼层
也可以自己画板子
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表