FreeRtos接收串口数据丢帧?

查了好久,

        一开始以为是任务切换导致的,结果不是,

        又检查了串口配置,没问题啊,

        再看一下以前的串口代码,也是能用,没有掉帧,

        然后把所有任务都挂起,也掉帧,说明也不是任务导致的掉帧,

        那还剩下什么在运行?

DMA!!!!!!!!

        终于让我发现了问题在哪:

ADC用DMA的时候,

        1,优先级一定要比串口的低,        优先级         串口 > DMA

        2,DMA速度要拉到最高

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
FreeRTOS是一个开源的实时操作系统,它提供了一套用于嵌入式系统的任务调度、内存管理、中断处理等功能。在使用FreeRTOS进行串口通信时,可能遇到串口数据的问题。 串口数据是指在数据传输过程中,接收端无法正确接收到发送端发送的数据。造成串口数据的原因可能有多种,下面列举了一些可能的原因和解决方法: 1. 波特率不匹配:发送端和接收端的波特率设置不一致,导致数据传输错误。解决方法是确保发送端和接收端的波特率设置一致。 2. 缓冲区溢出:接收端的缓冲区大小不足以容纳发送端发送的数据,导致数据失。解决方法是增加接收端缓冲区的大小,或者使用流控制机制来控制数据的流动。 3. 中断处理不及时:在使用中断方式进行串口通信时,如果中断处理函数的执行时间过长,可能导致数据失。解决方法是优化中断处理函数,尽量减少其中的延时操作。 4. 优先级问题:如果在FreeRTOS使用多个任务进行串口通信,任务的优先级设置不合理可能导致数据失。解决方法是合理设置任务的优先级,确保接收任务能够及时处理接收到的数据。 5. 硬件问题:串口硬件本身存在问题,例如电缆连接不良、串口芯片故障等,都可能导致数据失。解决方法是检查硬件连接是否正常,或者更换串口硬件。 以上是一些可能导致FreeRTOS串口数据的原因和解决方法,具体情况需要根据实际应用场景进行分析和调试。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值