完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
大家好,
一段时间以来,我一直在为一个问题而苦苦挣扎。在接收时,偶尔会收到一个错误的字节,其中最高有效位被接收为“1”。例如,如果发送 0x55 (0101 0101),则接收到 0xD5 (1101 0101)(但并非总是如此)。UART的配置如下:
我已将 UART 设置为启用中断。因此,在接收到字节后,将触发中断并在 ISR 中提取字节。每当问题发生时,RDR(接收数据寄存器)包含的字节在字节的最高有效位上具有所述错误。这个事实让我怀疑存在某种采样问题,导致 UART 将停止位采样为 MS 位。 我在 UART_SetConfig 函数期间观察到的一个奇怪的行为是 HAL_RCC_GetPCLK1Freq() 返回 16MHz,当它在 .ioc 文件中配置为 170MHz (ClockPrescaler=0) although,考虑到这个意外的时钟,USARTDIV 常数被很好地计算并存储在 BRR 中. 这个事实与问题有关吗? 我认为可以说传输没有任何问题。在我的计算机的终端上正确接收了字节。 可能会发生什么? 提前致谢,请让我知道是否有任何我可能遗漏在这里的细节。 |
|
相关推荐
1个回答
|
|
原来是震荡器坏了。一个新的振荡器解决了这个问题。
|
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2623 浏览 1 评论
3206 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1779 浏览 1 评论
3605 浏览 6 评论
5984 浏览 21 评论
934浏览 4评论
1311浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
579浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1299浏览 3评论
1353浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 23:28 , Processed in 0.961002 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号