TI中文支持网
TI专业的中文技术问题搜集分享网站

UART驱动接收数据中存在的问题

在官方提供的UART驱动中,pend模式且使用信号量超时时,UART的逻辑会出现问题。

代码 UART_v1.c中的uart_read2_v1();

当pend信号量因为超时而进行任务调度后,到关闭接收中断的过程中,如果刚好来了接收中断,那么在接收中断中会post一次信号量。

此时,任务是因为超时继续运行下去的,而不是因为post的操作。所以信号量可用。

那么,下次接收数据时,pend发现信号量可用,然后继续运行了,但是实际中此时数据接收并没有完成。

再下次接收数据时,会发现串口被占用。

Shine:

e2e已回复。
e2e.ti.com/…/760414

bengang wang:

回复 Shine:

谢谢,另外那个问题也是我问的。但是这两天没有给我回复。我说的这种情况我测试过,的确会出现,这是代码的一个bug,但是没人理我。

Shine:

回复 bengang wang:

可能工程师需要花一些时间验证是否是bug,请耐心等待。

赞(0)
未经允许不得转载:TI中文支持网 » UART驱动接收数据中存在的问题
分享到: 更多 (0)