STM32F103RCT6移植到STM32F103C8T6注意事项

前言
在移植某STM32F103RCT6程序时遇到keil5中没有合适flash大小(128k)的情况,本以为是keil5的pack没装好,重装包并升级到最新并没有解决该问题,百度之得到以下答案。同时,在F407中也存在这种情况,解决方法应该类似(没有实际测试),猜测主要原因应该出现在C/C++宏定义上,改为当前硬件对应即可。
另附STM32f10x的startup文件。

以下为转载,转自STM32F103RCT6移植到STM32F103C8T6注意事项

1,修改IC为STC32F103C8

STM32F103RCT6移植到STM32F103C8T6注意事项_第1张图片 

2,修改晶振为8.0M

 STM32F103RCT6移植到STM32F103C8T6注意事项_第2张图片 

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

 STM32F103RCT6移植到STM32F103C8T6注意事项_第3张图片

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

STM32F103RCT6移植到STM32F103C8T6注意事项_第4张图片

到这里已经没有报错了

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

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

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

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

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

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

特别感谢:http://www.openedv.com/posts/list/0/63500.htm 13楼的回复

你可能感兴趣的:(STM32F103RCT6移植到STM32F103C8T6注意事项)