这里我以STM32F103VET6切换到STM32F103RBT6举例:
(这里我暂时只写使用标准库时,以及IDE使用KEIL MDK的方法)
-
首先在Options->Device设备选择界面切换到对应的芯片
-
STM32F103RBT6是128K Flash,属于中等密度产品,STM32F103VET6是512K Flash,属于高密度产品,因此我们是从高密度产品切换到中密度产品,Options->C/C++界面Define栏中STM32F10X_HD改为STM32F10X_MD,HSE_VALUE根据实际使用的晶振进行调整设置(如果是8M外部晶振可以不用加这个宏,库里面默认就是8M晶振)
如何区分不同密度产品可参考:STM32不同型号的芯片对应的启动文件如何选择
-
如果是默认的8M晶振。直接跳过此步骤即可。
以第2步里的8M改为了12M晶振举例,找到system_stm32f10x.c里面SetSysClockTo72()函数中的
改成:
关于STM32时钟树配置更详细的内容可参考:STM32的时钟配置-时钟树解析 -
更改启动文件,工程中的startup_stm32f10x_hd.s改为工程中的startup_stm32f10x_md.s,如何根据芯片型号选择对应的启动文件可参考:STM32不同型号的芯片对应的启动文件如何选择
-
最后,Options->Debug硬件调试器重新选择正在使用的工具,因为每次切换设备调试器都是恢复成默认的ULINK