前言
在移植某STM32F103RCT6程序时遇到keil5中没有合适flash大小(128k)的情况,本以为是keil5的pack没装好,重装包并升级到最新并没有解决该问题,百度之得到以下答案。同时,在F407中也存在这种情况,解决方法应该类似(没有实际测试),猜测主要原因应该出现在C/C++宏定义上,改为当前硬件对应即可。
另附STM32f10x的startup文件。
以下为转载,转自STM32F103RCT6移植到STM32F103C8T6注意事项
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();以后马上就正常了,
特别感谢:http://www.openedv.com/posts/list/0/63500.htm 13楼的回复