STM32F1如何切换到不同的型号

这里我以STM32F103VET6切换到STM32F103RBT6举例:
(这里我暂时只写使用标准库时,以及IDE使用KEIL MDK的方法)

  1. 首先在Options->Device设备选择界面切换到对应的芯片
    在这里插入图片描述

  2. STM32F103RBT6是128K Flash,属于中等密度产品,STM32F103VET6是512K Flash,属于高密度产品,因此我们是从高密度产品切换到中密度产品,Options->C/C++界面Define栏中STM32F10X_HD改为STM32F10X_MD,HSE_VALUE根据实际使用的晶振进行调整设置(如果是8M外部晶振可以不用加这个宏,库里面默认就是8M晶振)
    如何区分不同密度产品可参考:STM32不同型号的芯片对应的启动文件如何选择
    在这里插入图片描述

  3. 如果是默认的8M晶振。直接跳过此步骤即可。
    以第2步里的8M改为了12M晶振举例,找到system_stm32f10x.c里面SetSysClockTo72()函数中的
    在这里插入图片描述
    改成:
    在这里插入图片描述
    关于STM32时钟树配置更详细的内容可参考:STM32的时钟配置-时钟树解析

  4. 更改启动文件,工程中的startup_stm32f10x_hd.s改为工程中的startup_stm32f10x_md.s,如何根据芯片型号选择对应的启动文件可参考:STM32不同型号的芯片对应的启动文件如何选择

  5. 最后,Options->Debug硬件调试器重新选择正在使用的工具,因为每次切换设备调试器都是恢复成默认的ULINK
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44788542/article/details/111643264
今日推荐