在STM32的官方库切换芯片型号

对象:在STM32F10X的3.5官方库的进行芯片的切换

例子:f103切换成f107

资源吸取自:野火的《【野火®】零死角玩转STM32—F103霸道》、网上大神

所需材料:STM32F10X的官方3.5的库

测试所用开发工具:MDK5.2 ; IAR 7.3;

说明:至于怎么使用STM32的库建立MDK工程或IAR工程,我是看火哥的教程搞的,野火的教程只是MDK的工程但是和IAR工程的建立是一个道理的只要把涉及到的MDK的文件替换成IAR文件就行了,至于碰到错误和警告如何修改,可以查看我之后的博客。

一、原理依据

         从上面可以看到不同芯片对应不同的.s文件,这个要切换。另外还要切换的是预编译器里的宏定义,例如STM32F10X_CL/STM32F10X_HD/……等

        

 

 

 

 

 

 

 

 

 

 

 

 

 

二、MDK5.2下的切换

目标:将STM32F103ZET工程切换成STM32F107VC工程。

看图说话:

1.将f103切换成f107,

 

2.在c/c++预编译上用STM32F10X_CL把STM32F10X_HD的替换掉。因为107是CL,而103ZET是HD

 

 

 

3.把startup_stm32f10x_hd.s去掉,添加startup_stm32f10x_cl.s

         这三步就完成了f103到f107的切换,编译无错。

 

三、IAR下的切换

         同MDK的步骤,结果会出现警告,是startup_stm32f10x_cl.s中NOROOT的问题,如下问题:

解决方法:添加NOROOT,就是在REORDER后面加:NORROT就OK了,如下图,上面一个我已经改了,下面圆圈里的还没改(作为错误对照)

 

另外发现IAR7.3下直接改变芯片编译不会出错,看来IAR没有MDK严谨呀!

四、其他芯片型号的切换

同理,其他芯片的切换,也是:1,对应芯片startup_stm32f10x_xxx.s的替换,2.预编译c/c++下面的全局宏定义替换下,OK了。

 

猜你喜欢

转载自blog.csdn.net/yhb1206/article/details/82284032
今日推荐