在单片机内部我们都是按照一个字节一个字节的去接收数据。一般情况下我们通常通过接收数据的时间和长度来把串口数据进行分帧,如果收到一个字节数据后多少时间内没有收到数据就认为是一个数据包,或者收到超过一定长度的数据就分帧。
在嵌入式linux里面是否可以实现这种机制?
我在ubuntu下试验过,比如在115200的波特率下,把超时时间设置为3ms,然后每次读取一个字节的数据,然后当3ms没有数据的情况下,认为之前收到的数据是一个数据包,或者这个数据包长度超过1300字节为一个数据包。当我发送一个从串口发送一个1K的数据包的情况下,按照理论来说应该就是一个1k的数据包,但是实际上分成了多个数据包。
有没有人对这一块有研究,指导一下。 |