日期:2014-05-16  浏览次数:20921 次

救急啊!
学生在做GPRS实验时,GPRS是通过COM2传输后显示的。GPRS发送短信,拨打电话,接听电话都比较顺利,但是GPRS读短信时显示有错误,ttse/0:1 input overrun(s).请高手们帮忙解决一下啊!!!

------解决方案--------------------
需要注意的是:

如果不是开发终端之类的,只是串口传输数据,而不需要串口来处理,那么使用原始模式(Raw Mode)方式来通讯,设置方式如下: 

options.c_lflag &= ~(ICANON ECHO ECHOE ISIG); /*Input*/
options.c_oflag &= ~OPOST; /*Output*/
读写串口
设置好串口之后,读写串口就很容易了,把串口当作文件读写就是。 

发送数据 
char buffer[1024]; 
int Length; 
int nByte;
nByte = write(fd, buffer ,Length)
 


读取串口数据 
使用文件操作read函数读取,如果设置为原始模式(Raw Mode)传输数据,那么read函数返回的字符数是实际串口收到的字符数。 

可以使用操作文件的函数来实现异步读取,如fcntl,或者select等来操作。 

char buff[1024];
int Len;
int readByte = read(fd,buff,Len);
 


关闭串口
关闭串口就是关闭文件。 

close(fd);