如何判断串口已经写完,然后读串口
小弟现在在开发一个读写串口的程序,在读串口的时候,是一帧数据一帧数据进行读的,在读之前需要判断着一帧数据是否已经完全接收好(每帧有固定的格式,但是长度不一定)。
我在判断一帧是否接收完这个条件上是下面这么写的:
while ((com.BytesToRead != com.BytesToRead) || (com.BytesToRead == 0))//当串口缓冲区的字节数一直变化时,延时等待
{
Thread.Sleep(100);//等待100ms
}
int N = com.BytesToRead;//获得接收到帧的字节数
byte[] byte_arr = new byte[N];//定义新的数组,准备接收串口缓冲区数据
com.Read(byte_arr, 0, N_clear_max);//将串口缓冲区数据读入数据
string str_temp = Read_Frame(byte_arr);//将读到的数据按照帧格式进行提取,获得有用的数据
-------------------------------
我在单步运行的时候,用上面那个判断是否接收完一帧数据(串口缓冲区字节一直变化 并上 不等于零)还没有报错,全部自动运行之后就报错,有时候一帧没有读完就把数据给读出来了。
-----------------------------
我想请问各位高手,都是利用什么条件来判断 一帧 数据是否已经写完的?
谢谢!