在NUC977DK61Y芯片上中断的误操作导致串口数据出现OVER_IF问题

0 评论
/
8 阅读
/
382 字
27 2025-02

问题描述

在NUC977DK61Y芯片上有编码器,有串口通讯,当编码器旋转过快,导致串口数据错乱。

问题定位

由于芯片的串口只有中断模式接收数据,没有DMA,我当时一直看代码,发现没问题,后来我意识到问题方向不对, 由于我的操控是编码器操控,监控到的数据是每次跟编码器旋转速度有关系,快了就数据接收出问题。

于是往编码器方向找问题,看到编码器里面AB项上下沿都触发中断,然后在中断中还有延迟函数(隐藏在别的业务函数中)

处理方案

问题基本上找到,就是编码器的中断导致UART接收出问题,果断将编码器的中断函数精简,将业务提取出来去主循环处理 中断只负责最基本的数据标记和计数。不做任何其他逻辑处理,这样子编码器与UART就能很好的配合工作。

    暂无数据