[APM32F0] F030_串口波特率自校准

[复制链接]
 楼主| 多云转晴 发表于 2023-12-4 17:18 | 显示全部楼层 |阅读模式
一、应用背景
HSI,内部高速时钟,由RC振荡器构成。在日常应用中,由于测试环境变化(温度、湿度等),HSI的时钟精度并不是特别高,当其出现较大偏差时,就有可能导致其他外设的功能也受到影响,串口就是其中的一员。
二、应用方案
配备条件:
1)F030的TIM14存在一个选项寄存器,可以将其通道一连接至MCO输出端;
2)自校准需开启HSE、HSI、LSI/LSE。
具体实施:
1)先由HSI作为系统时钟,开启MCO输出(输出LSI/LSE),将TIM14通道一配置(连接MCO,并使能捕获),即可得到HSI对LSI/LSE的计数值;
2)再切换HSE作为系统时钟,同样对LSI/LSE进行捕获,也得到一个计数值。
3)此时,HSE的计数值为标准值,HSI计数值与HSE计数值的差值即为误差值,误差值除以标准值为误差百分比。
4)接下来便是进入串口封装的库函数中,将波特率计算的部分在原有基础上再加入得到的误差百分比(可以做个判断,即HSI作为系统时钟再进行此运算),再将HSI作为系统时钟,即可检验结果。
三、附录
1111.png
2222.png
3333.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

17

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部