请教TI工程师,串口按字节来接收。在UART1输出调试信息后,UART0开始接收数据。 但偶尔会丢失几个字节,有哪些可能的原因了?下面是接收代码块,另一端串口0发送数据,和3200接收数据(丢失了一个0X0A)
gaoyang9992006:
单独使用UART0接收会有丢失吗,还是你想说UART1输出会影响到UART0的接收?
th smi:
回复 gaoyang9992006:
应该没有影响, 另一端发送了两个数据包, 感觉第一个数据包还没接收完, 第二个数据包就覆盖了接收缓存。
下面是代码和调试输出,CC3200第一个数据包少收了一个字节。
请教一下大家是什么原因?
xyz549040622:
回复 th smi:
建个缓存区,接收到的字节都放缓存区,再从缓存区中读取数据,缓存区可以稍微大点。
th smi:
回复 xyz549040622:
已经建立一个缓冲区了,长度256, 每次收到特定字符,做相应处理,并从零开始再次放入缓存。
xyz549040622:
回复 th smi:
只丢0x0A吗?发送其他数据不会丢失?
th smi:
回复 xyz549040622:
0x0A 0x0D 是数据的结尾, 会在结尾丢几个字节
Viki Shi:
回复 th smi:
看描述像两个任务冲突引起的,你可以使用CCS的REV tool,查看当前任务的状态,以及是否有溢出等。该工具的介绍请看:
processors.wiki.ti.com/…/Runtime_Object_View_(ROV)