日期:2014-05-18  浏览次数:20924 次

串口通信协议怎样处理?
请教各位,我用串口进行通信,使用SerialPort类设计,可以实现正常收发。但实际应用中涉及到串口通信协议,感觉比较糊涂。
  假设协议是:数据帧定长10字节。数据帧起始标志22H,22H两字节;结束标志AAH,AAH两字节。
  请问这个数据是怎样传输的:一帧一帧的发送,还是多帧一起送入?DataReceived的响应是在具体什么情况下会响应的呢(看来解释但还是感觉不清楚)?
  我想用的方法是将发送过来的数据一起接收,并转化成字符串形式,然后通过数据帧的起始和结束标志将每一帧取出来,再对其进行处理,不知道可以不?

------解决方案--------------------
临时写的,不要介意。
C# code

byte[] bdata = new byte[10];
bdata[0] = 0x22;
bdata[.] = 0x00;
...
bdata[9] = 0xAA;

------解决方案--------------------
探讨
谢谢mjp1234airen4385。

发送数据我已经明白了,现在主要是对接收感觉糊涂。我不知道具体串口发送过来的数据形式是怎样的,接收时应该一帧一帧处理,还是一起接收过来,然后再把它一帧一帧的分开?

------解决方案--------------------
接收要根据协议来拆分
------解决方案--------------------
接收一帧产生一次DataReceived
------解决方案--------------------
SerialPort.ReceivedBytesThreshold = 10;