记一次串口丢包问题排查

1.项目中需要stm32和JN5169做串口通信,经测试大概有千分之一的丢包率。

2.排查步骤:

2.1.去掉关中断的地方

2.2.提高串口中断优先级

2.3.确定非线路问题

2.4.剪除系统,用裸机跑

3.最终发现,是相同优先级的中断抢占了串口中断,导致丢包。

 

 

FreeRTOS是一款开源的实时操作系统,广泛应用于嵌入式系统中。在FreeRTOS中,串口通信可以使用中断方式进行处理。 当出现串口中断丢包的情况时,可能是由于以下几个原因造成的: 1. 中断优先级问题:FreeRTOS中,不同的任务拥有不同的优先级。如果某个任务的优先级高于串口接收中断的优先级,就有可能导致中断处理时被其他任务抢占而导致数据丢失。在这种情况下,可以通过调整任务的优先级或者中断的优先级来解决丢包问题。 2. 缓冲区溢出:串口数据通过中断方式处理时,一般会使用一个缓冲区来存放接收到的数据。如果数据的接收速度大于数据的处理速度,就容易造成缓冲区溢出,导致数据丢失。为了解决这个问题,可以增加缓冲区的大小,或者采用其他的数据传输方式(如DMA)来加快数据处理速度。 3. 串口配置错误:如果串口的参数配置错误,比如波特、数据位、停止位等不匹配,就有可能导致数据传输错误或丢失。此时,需要检查串口配置是否正确,并根据具体情况进行修改。 4. 外部硬件问题丢包问题还可能与外部硬件相关。例如,电缆连接松动、信号干扰、电压波动等,都有可能导致数据丢失。在这种情况下,需要检查硬件连接是否牢固,并采取适当的硬件措施来解决问题。 综上所述,当FreeRTOS串口中断出现丢包时,我们可以从中断优先级、缓冲区溢出、串口配置和外部硬件等方面进行排查和调整,以解决丢包问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值