zysun20010300 发表于 2012-7-16 19:35:39

MSP430串口接收完整数据包

串口中断一个一个的接收数据,怎样判断串口收完了一包数据?

283868130 发表于 2012-7-16 20:00:54

两个方法,
一是使用特点数据作为包头包尾,使用限制则是要求正常数据中不能包含包头包尾数据,例如使用ASCII字符包尾传输时,可以考虑该方式
另外就是超时分包,每次接收到数据将某计时器清零,当计时器溢出中断时,认可委一包数据传输结束

orzorzorzorz 发表于 2012-7-16 20:43:28

modbus这种没有帧头帧尾,就用超时来断帧
对于有帧头帧尾的数据,那就按帧头帧尾来断帧,除了帧头帧尾外,数据段一般采用转义处理

armku 发表于 2012-7-16 21:01:53

orzorzorzorz 发表于 2012-7-16 20:43 static/image/common/back.gif
modbus这种没有帧头帧尾,就用超时来断帧
对于有帧头帧尾的数据,那就按帧头帧尾来断帧,除了帧头帧尾外, ...

modbus有帧头的,可以通过协议判断。

orzorzorzorz 发表于 2012-7-16 21:38:53

armku 发表于 2012-7-16 21:01 static/image/common/back.gif
modbus有帧头的,可以通过协议判断。

modbus这种不能算严格意义的有帧头帧尾的

有帧头帧尾的数据包,告诉帧头帧尾的关键字,可以不用管其他数据就可以解析出来
但是modbus不行

zysun20010300 发表于 2012-7-17 09:19:51

我用的485,用帧头帧尾的方式,如果数据出错,那就比较麻烦了,看来只能用超时处理了
页: [1]
查看完整版本: MSP430串口接收完整数据包