当前位置: 技术问答>linux和unix
跪求解决串口485通讯丢字节的问题,各位高手救命呀!人命关天呀
来源: 互联网 发布时间:2015-05-26
本文导语: 我的程序通过串口(485协议的)读取电度表里面的数据,数据读得出来,但是总是有丢字节的现象,比如我的报文是如下格式: 1 aa b 10 4 cf 0 0 0 99 d 但是发送过来的时候有的时候就会发生丢字节...
我的程序通过串口(485协议的)读取电度表里面的数据,数据读得出来,但是总是有丢字节的现象,比如我的报文是如下格式:
1 aa b 10 4 cf 0 0 0 99 d
但是发送过来的时候有的时候就会发生丢字节现象:
1 aa b 10 4 0 0 0 99 d
并且是有的时候丢有的时候不丢,这个问题已经憋了我一年了,请问各位高手怎么解决的呀?是不是我的串口初始化设置有问题呀?应该是哪部分问题呢?应该怎么样解决呢?问题解决了可以再加分!在线等!
1 aa b 10 4 cf 0 0 0 99 d
但是发送过来的时候有的时候就会发生丢字节现象:
1 aa b 10 4 0 0 0 99 d
并且是有的时候丢有的时候不丢,这个问题已经憋了我一年了,请问各位高手怎么解决的呀?是不是我的串口初始化设置有问题呀?应该是哪部分问题呢?应该怎么样解决呢?问题解决了可以再加分!在线等!
|
你用的读函数有问题,在linux下一次一般只能读4-8个字节,有的平台一次只能读一个字节,
你要自己多读几次,然后把读到的数据组合起来。
你要自己多读几次,然后把读到的数据组合起来。
|
void initcum()
{
struct termios cum0;
unsigned char echo[6];
int handle;
handle=open(CUM0,O_RDWR|O_NOCTTY);
if (handle
{
struct termios cum0;
unsigned char echo[6];
int handle;
handle=open(CUM0,O_RDWR|O_NOCTTY);
if (handle