完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32L476,使用内部HSI-16M时钟,串口波特率设置为3Mhz,实际测量出来波特率只有2.86MHz。
看手册,常温下内部HSI时钟频偏只有正负1%,出来的串口波特率看已经偏了4.67%了,理论上不应该有这么大的偏差吧?是芯片内部坏了吗? |
|
相关推荐
2个回答
|
|
楼主您好,首先确认波特的配置不需要修改分频系数。只需要初始化的时候写入波特率即可。如果时钟频率降低,波特率的提高误差会增加。请仔细阅读串口波特率频率的介绍。
|
|
|
|
在STM32L476芯片中,串口波特率的计算公式为:
波特率 = FCK / (8 * (2 - OVER8) * (USARTDIV + 1)) 其中,FCK是串口时钟频率,OVER8位于USART_CR1寄存器中,用于设置串口采样分频系数,OVER8为0时分频系数为16,OVER8为1时分频系数为8。USARTDIV位于USART_BRR寄存器中,表示分频系数,计算公式为: USARTDIV = 整数部分 + 小数部分 整数部分的计算公式为: 整数部分 = FCK / (波特率 * 16) 小数部分的计算公式为: 小数部分 = ((整数部分 - 整数部分的取整值) * 16) + 0.5 根据上述公式,计算得到波特率为3Mhz时的USARTDIV为4.5,但STM32L476芯片的USARTDIV寄存器的设置值是整数,不支持小数部分。因此,实际设置的USARTDIV值为4,对应的波特率为2.86MHz。所以,实际测量的波特率与理论值有些差距是正常的,不代表芯片内部出现问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1801 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1629 浏览 1 评论
1096 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
735 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1684 浏览 2 评论
1944浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
745浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
580浏览 3评论
602浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
565浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 21:32 , Processed in 0.906457 second(s), Total 82, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号