完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一直有个疑问?usart有在单通道工作模式下可能会有四种错误。pe-校验错,fe-帧错误,ne-噪声标志,org-过载标志。
当如果usart工作的时候,出现以上一种或者多种错误的时候,我应该怎么配置可以让串口重新进入工作。这个再485通信当中特别重要。需要串口自恢复而不能直接报警。 而且出现错误是在所难免的。 根据文档介绍,对于这四种标志的去除有两种方式。 ①直接清零,不过他建议是在多通道缓冲下也即使dma方式下。这是为什么???? ②先读取一次状态位,然后在读取usart- gt;DR这个寄存器既可以完成标志的清楚。 加入串口工作出现异常,是不是就要清下标志位就可以立刻投入正常工作? |
|
相关推荐
1个回答
|
|
在STM32F103VCT6的USART通信中,确实可能会遇到PE(校验错误)、FE(帧错误)、NF(噪声标志)和ORE(过载标志)这四种错误。当出现这些错误时,需要采取一定的措施来恢复USART的正常工作。以下是一些建议:
1. 错误清除方法: - 方法①:直接清零。这种方法适用于DMA(Direct Memory Access,直接存储器访问)方式,因为DMA可以自动处理数据传输,不需要CPU干预。在这种情况下,清除错误标志可以确保DMA继续正常工作。 - 方法②:先读取一次状态位,然后读取USART->DR寄存器。这种方法适用于非DMA方式,通过读取状态位和数据寄存器来清除错误标志。 2. 自恢复机制: 为了实现USART的自恢复,可以在程序中添加错误处理逻辑。当检测到错误时,执行以下步骤: a. 清除错误标志(使用上述方法)。 b. 检查USART的状态,确保它已经恢复到正常工作状态。 c. 如果需要,重新发送数据或重新配置USART参数。 d. 继续USART通信。 3. 485通信中的注意事项: 在485通信中,由于通信距离较长,信号容易受到干扰,导致错误发生。为了实现自恢复,可以采取以下措施: a. 使用硬件或软件流控制,以减少冲突和错误。 b. 在程序中实现错误检测和处理逻辑,确保USART能够在出现错误时自动恢复。 c. 选择合适的波特率和校验方式,以减少错误发生的概率。 总之,为了实现USART在出现错误时的自恢复,需要在程序中添加错误处理逻辑,并根据实际情况选择合适的错误清除方法。在485通信中,还需要考虑信号干扰和冲突的问题,采取相应的措施来提高通信的可靠性。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1362 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1359 浏览 1 评论
779 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
561 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1391 浏览 2 评论
1756浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
483浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
418浏览 3评论
410浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
388浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-28 06:09 , Processed in 0.633896 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号