菜鸟求助!!!为什么只能发送不能接收- -#
yko_L 2011-08-10 10:44:49 我正在学习android的系统开发,想写一个linux程序实现串口和其他设备通信,但搞了几个星期都不知道串口2只能发送不能接收的原因?各位大虾,请帮小弟一把。我用的芯片是imx515。
我测试过,硬件上没有问题,我在RXD引脚上可以看到信号,至于串口驱动应该是没有问题的。所以我一直怀疑是我的设置有问题。请帮我看一下问题出在哪。
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <termios.h>
#include <sys/time.h>
int main(int argc, char **argv)
{
int fd;
char *dev ="/dev/ttymxc1";
struct termios termios;
char rbuf[256] = "";
char wbuf[256] = "";
int nread, nwrite;
int i;
printf("==== START ====\n");
fd = open(dev, O_RDWR | O_NOCTTY);
if(fd < 0)
{
printf("open %s fail!\n", dev);
return 0;
}
printf("open %s success!\n", dev);
tcgetattr(fd, &termios);
bzero(&termios, sizeof(termios));
termios.c_cflag = B115200|CS8|CLOCAL|CREAD;
termios.c_iflag = IGNPAR | IXON | IXOFF | IXANY;
termios.c_oflag = 0;
termios.c_lflag = 0;
termios.c_cc[VTIME] = 0;
termios.c_cc[VMIN] = 0;
tcflush(fd, TCIOFLUSH);
tcsetattr(fd, TCSANOW, &termios);
printf("====MISSION START====\n");
nwrite = write(fd, "====MISSION START====", 21);
printf("==== READ TEST ====\n");
while(1)
{
nread = read(fd, rbuf, 10);
if(nread > 0)
{
printf("====MISSION COMPLETE!====\n");
break;
}
}
printf("==== THE END ====\n");
close(fd);
return 0;
}