LINUX下通讯,ARM板子串口接不到数据啊
串口设置的部分:
void first::serial()
{
int status;
struct termios Opt;
struct termios oldOpt;
fd = open("dev/tq2440_serial0" ,O_RDWR);
if(-1==fd){perror("no open");}
if(isatty(STDIN_FILENO)==0)
{perror("standard up!");}
tcgetattr(fd, &oldOpt);
bzero(&Opt,sizeof(Opt));
Opt.c_cflag |= CLOCAL|CREAD;
//tcflush(fd, TCIOFLUSH);
Opt.c_cflag &=~CSIZE;
Opt.c_cflag |= CS8;
cfsetispeed(&Opt ,B9600);
cfsetospeed(&Opt ,B9600);
fcntl(fd, F_SETFL, O_NONBLOCK);
isatty(STDIN_FILENO);
Opt.c_iflag &= ~INPCK;
Opt.c_cflag &= ~PARENB;
Opt.c_cflag &= ~CSTOPB;
Opt.c_lflag &= ~ICANON;
Opt.c_cc[VTIME] =0;
Opt.c_cc[VMIN] =0;
Opt.c_iflag |= IGNPAR|ICRNL;
Opt.c_oflag |= OPOST;
Opt.c_iflag &= ~(IXON|IXOFF|IXANY);
tcflush(fd, TCIOFLUSH);
status = tcsetattr(fd, TCSANOW, &Opt);
}
就是想搞个无校验位的8位数据拉,1位停止位和9600波特率的串口
以上设置之后可以用ARM板向电脑发送数据,可是电脑向ARM板发送的数据ARM板却接不到
为何啊,渴望解答,先谢谢了,众位来see 1 see啊
void first::serial()
{
int status;
struct termios Opt;
struct termios oldOpt;
fd = open("dev/tq2440_serial0" ,O_RDWR);
if(-1==fd){perror("no open");}
if(isatty(STDIN_FILENO)==0)
{perror("standard up!");}
tcgetattr(fd, &oldOpt);
bzero(&Opt,sizeof(Opt));
Opt.c_cflag |= CLOCAL|CREAD;
//tcflush(fd, TCIOFLUSH);
Opt.c_cflag &=~CSIZE;
Opt.c_cflag |= CS8;
cfsetispeed(&Opt ,B9600);
cfsetospeed(&Opt ,B9600);
fcntl(fd, F_SETFL, O_NONBLOCK);
isatty(STDIN_FILENO);
Opt.c_iflag &= ~INPCK;
Opt.c_cflag &= ~PARENB;
Opt.c_cflag &= ~CSTOPB;
Opt.c_lflag &= ~ICANON;
Opt.c_cc[VTIME] =0;
Opt.c_cc[VMIN] =0;
Opt.c_iflag |= IGNPAR|ICRNL;
Opt.c_oflag |= OPOST;
Opt.c_iflag &= ~(IXON|IXOFF|IXANY);
tcflush(fd, TCIOFLUSH);
status = tcsetattr(fd, TCSANOW, &Opt);
}
就是想搞个无校验位的8位数据拉,1位停止位和9600波特率的串口
以上设置之后可以用ARM板向电脑发送数据,可是电脑向ARM板发送的数据ARM板却接不到
为何啊,渴望解答,先谢谢了,众位来see 1 see啊
作者: gongheiniu 发布时间: 2011-05-20
好像流程没多大问题,不清楚你下面设备 是不是 dev/tq2440_serial0 了 你用/dev/ttyS0 试试 也试着板子发 pc收 双向测试吧
作者: lxq00 发布时间: 2011-05-20