环境:
如果大家有参考的地方,要注意是否和我使用的STM32的平台版本一样。如果不同,可能要修改的地方会有不同的地方。
1.串口波特率、系统时钟TICK错乱
如果使用原来的编译方式,会导致串口的波特率的错乱。现在要确定如何将该问题解决。
参考一个博客stm32外部时钟源8M晶振换成12M
这里的可以找到HSE_VALUE的值来修改!
2.问题初步的解决
- 进入C:Usersiccad.platformiopackagesframework-arduinoststm32@4.10900.200819systemDriversSTM32F1xx_HAL_DriverInc文件夹,复制stm32f1xx_hal_conf_template.h文件,粘贴到本文件夹,重命名stm32f1xx_hal_conf.h。
- 开始修改conf文件,F1系列单片机没有定义DAC,编译后会报错。将44行的宏定义注释掉。
- 修改HSE_VALUE,在conf文件中的82行,我们进行更改为12000000。
- 修改varaint文件中的时钟配置。本次的配置使用的是generic_F103Cx中的管脚配置文件。我们进入文件夹找到函数SystemClock_Config。进行修改其中的倍频系数,由于最高的频率是72M = 12*6。所以这里的倍频系数修改成6。
3.参考设置
首先是在cube中生成的参考图形
可以使用这种方式来读取系统的时钟频率