我在使用 UART FIFO 缓冲区时遇到了以下问题。
问题描述:
当通过两个 UART 通道使用完整的 UART FIFO 缓冲区并通过两个通道进行通信时,缓冲区中的数据有时会损坏,例如,UART 1 TX FIFO 缓冲区中的一个字节从 UART 0 TX FIFO 更改为一个字节(见下图)。
据我所见,问题发生在FIFO硬件的某个地方,因为软件发送的数据是正确的。
UART 设置:
* 波特率 = 115200U,* 数据位 = 8U,* 帧长度 = 8U,
* stop_bits = 1U,* 过采样 = 16U,
* parity_mode = XMC_USIC_CH_PARITY_
MODE_NONE
两个 UART 通道都使用 FIFO 缓冲区,没有任何中断。
缓冲区每 1 毫秒 TLE9243QK_BASE_BOARD 检查一次标志是否有可供读取或写入的内容。
UART_0 和 UART_1 使用的先出区域是分开连续读取和写入的,因此不可能受到干扰。
在以下情况下会出现问题:
-使用整个 64 字 UART FIFO 缓冲区:
* UART_0 TXFIFO = 8 个字 * UART_0 RXFIFO = 8 个字 * UART_1 TXFIFO = 16 个字
* UART_1 TXFIFO = 32 个字
-同时使用 UART_0 和 UART_1
有限的解决方法:如果不使用完整
的 FIFO 缓冲区(只有 48 个字),问题就会消失:
* UART_0 TXFIFO = 8 个字
* UART_0 RXFIFO = 8 个字
* UART_1 TXFIFO = 16 个字
* UART_1 TXFIFO = 16 个字
DAVE 允许我将 UART 配置为使用完整的 64 个条目 (8+8+16+32),以及 8 个数据位和 1 个停止位的 UART 设置。
你知道可能是什么问题吗?
共2条
1/1 1 跳转至页
使用UARTFIFO缓冲区时,缓冲区中的数据有时会损坏的原因?
关键词: UART 缓冲区 FIFO
2楼
1. 硬件故障:UART控制器可能存在硬件故障或连接问题,导致数据在传输过程中被损坏。您可以尝试使用不同的UART控制器或更换硬件来解决此问题。
2. 中断竞争:如果使用中断来处理UART数据的发送和接收,在处理数据时可能会发生中断竞争。例如,当一个UART通道正在发送数据时,另一个UART通道的中断可能会干扰数据的传输,导致数据损坏。您可以尝试使用互斥锁或其他同步机制来解决中断竞争问题。
3. 缓冲区溢出:如果发送方以较快的速度发送数据,而接收方未能及时处理接收到的数据,缓冲区可能会溢出。这可能导致数据丢失或被覆盖,从而导致数据损坏。您可以增加缓冲区的大小或优化接收数据的处理速度来解决缓冲区溢出问题。
4. 电气干扰:UART通信可能受到电气干扰的影响,例如来自其他设备或电源线的干扰。这可能会导致数据传输中的位翻转或丢失,导致数据损坏。您可以尝试使用屏蔽电缆、隔离器件或增加地线和电源线的滤波器来减少电气干扰。
共2条
1/1 1 跳转至页
回复
| 有奖活动 | |
|---|---|
| 2026年“我要开发板活动”第三季,开始了! | |
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
我要赚赏金打赏帖 |
|
|---|---|
| 以启明云端ESP32P4开发板实现TF卡读写功能被打赏¥28元 | |
| 【分享开发笔记,赚取电动螺丝刀】树莓派5串口UART0配置被打赏¥25元 | |
| 【STM32F103ZET6】17:分享在Rtos项目中断管理的使用经验被打赏¥23元 | |
| 【STM32F103ZET6】16:分享在中断中恢复串口任务,遇到的问题被打赏¥31元 | |
| 在FireBeetle2ESP32-C5上实现温度大气压检测及显示被打赏¥21元 | |
| 【分享开发笔记,赚取电动螺丝刀】SAME51双串口收发配置被打赏¥27元 | |
| Chaos-nano操作系统在手持式VOC检测设备上的应用被打赏¥37元 | |
| 【分享开发笔记,赚取电动螺丝刀】关于在导入第三方库lib时,wchart类型冲突的原因及解决方案被打赏¥30元 | |
| 在FireBeetle2ESP32-C5上实现温湿度检测和显示被打赏¥20元 | |
| 在FireBeetle2ESP32-C5上实现光照强度检测及显示被打赏¥21元 | |
我要赚赏金
