读端口数据出现乱码问题!
发布时间:2008-03-14 17:46:11来源:红联作者:t_j_b
以下为我的源程序,在系统调试时发现读出来的字符中前面部份是乱码,后面的是正确的,请高手赐教处理方法!
/*******************************************************************/
if((fd1 = open("/dev/ttyS02", O_RDWR | O_NOCTTY | O_NDELAY))<0) /*打开串口PortA*/
exit(0);
/*******************************************************************/
/*准备开始发送和接收数据*/
tcgetattr(fd1,&option);
cfmakeraw(&option);
/************************波特率设置**************************/
cfsetispeed(&option,B9600); /*Port波特率设置为9600bps*/
cfsetospeed(&option,B9600);
tcsetattr(fd1,TCSANOW,&option);
/*防止读串口堵塞*/
MaxFd = fd1 + 1;
tv.tv_sec = 0;
tv.tv_usec = 500000;
/*************************进入命令/响应循环****************************/
while(1>0)
{
/*************************从Port A接收数据*****************************/
/*与设备通信*/
usleep(2000000);
retv1=write(fd1,sbuf1,4);/*发送通讯请求*/
usleep(1000000);
FD_ZERO(&readset);
FD_SET(fd1,&readset);
select(MaxFd,&readset,0,0,&tv);
if(FD_ISSET(fd1,&readset))
retv2=read(fd1,rbuf1,23););/*接收设备应答数据23个char*/