首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

sos,为什么小弟我在虚拟机下用linux串口接收到的数据最高位为0

2012-03-06 
sos,为什么我在虚拟机下用linux串口接收到的数据最高位为0?rt,这是我设置串口的代码:inline bool config(

sos,为什么我在虚拟机下用linux串口接收到的数据最高位为0?
rt,这是我设置串口的代码:

inline bool config( int fd )
/**
*@brief config the system
*@param fd type int handle of the port
*@param speed type int the speed you want
*@return true if seted successfully, vice false
*/
{
struct termios opt;
tcgetattr( fd, &opt );
cfsetispeed( &opt, B1200 );
cfsetospeed( &opt, B1200 );
tcgetattr( fd, &opt );
opt.c_cflag |= CREAD;
opt.c_cflag |= CLOCAL;
opt.c_cflag &= ~CSIZE;
opt.c_cflag |= PARENB; //even
opt.c_cflag &= ~PARODD; //even
opt.c_iflag |= INPCK; //
opt.c_iflag |= ISTRIP;
opt.c_iflag &= ~INLCR;
opt.c_iflag &= ~IGNCR;
opt.c_iflag &= ~ICRNL;
opt.c_iflag &= ~IUCLC;
opt.c_iflag |= IGNBRK;
opt.c_cflag &= ~CSTOPB; //stop enable
opt.c_lflag &= ~( ICANON | ECHO | ECHOE | ISIG );
opt.c_oflag &= ~OPOST;
opt.c_cc[VTIME] = 0;
opt.c_cc[VMIN] = 1;
tcflush( fd, TCIOFLUSH );
if( tcsetattr( fd, TCSANOW, &opt ) )
{
perror( "Config setting fail!" );
return false;
}
tcgetattr( fd, &opt );
opt.c_cflag |= CS8; //8 bits data
if( tcsetattr( fd, TCSANOW, &opt ) )
{
perror( "Bits setting fail!" );
return false;
}
tcflush( fd, TCIOFLUSH );
return true;
}

接收到的最高位一直是0,希望高手回答

[解决办法]
呵呵 代码太多 帮顶

热点排行