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

CC3200串口接收丢失数据

请教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)

赞(0)
未经允许不得转载:TI中文支持网 » CC3200串口接收丢失数据
分享到: 更多 (0)