首页 > 技术文章 > 使用PIO问题:STM32的外部晶振从8M更换为12M,解决运行速度的问题

breakr-yu 2021-09-22 15:54 原文

环境:

如果大家有参考的地方,要注意是否和我使用的STM32的平台版本一样。如果不同,可能要修改的地方会有不同的地方。

1.串口波特率、系统时钟TICK错乱

如果使用原来的编译方式,会导致串口的波特率的错乱。现在要确定如何将该问题解决。

参考一个博客stm32外部时钟源8M晶振换成12M

 

这里的可以找到HSE_VALUE的值来修改!

2.问题初步的解决

  1. 进入C:\Users\iccad\.platformio\packages\framework-arduinoststm32@4.10900.200819\system\Drivers\STM32F1xx_HAL_Driver\Inc文件夹,复制stm32f1xx_hal_conf_template.h文件,粘贴到本文件夹,重命名stm32f1xx_hal_conf.h。
  2. 开始修改conf文件,F1系列单片机没有定义DAC,编译后会报错。将44行的宏定义注释掉。
  3. 修改HSE_VALUE,在conf文件中的82行,我们进行更改为12000000。
  4. 修改varaint文件中的时钟配置。本次的配置使用的是generic_F103Cx中的管脚配置文件。我们进入文件夹找到函数SystemClock_Config。进行修改其中的倍频系数,由于最高的频率是72M = 12*6。所以这里的倍频系数修改成6。

3.参考设置

首先是在cube中生成的参考图形

可以使用这种方式来读取系统的时钟频率

推荐阅读