arduino在接收不到串口数据 通过串口调试助手 loop开始就写了 等待serial.available()>0则 sig=
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arduino在接收不到串口数据 通过串口调试助手 loop开始就写了 等待serial.available()>0则 sig=相关的知识,希望对你有一定的参考价值。
=serial.read() 不知道为什么一直读不到通过串口监控谢谢各位大神了!
参考技术A 原谅我学艺不精,没发现问题在哪,不过你用了这么多if,可以换成switch和case组合,间接很多,说不定问题也可以解决串口调试助手,可以接收到仪器发出来的数据。 自己编写的程序,无法接收到仪器发出来的数据。
下面是自己写的程序
//打开串口3
int i,length_data=0; int fd_port3; int status;
struct termios newtio,oldtio;
unsigned char buffer0[40];
fd_port3 = open("/dev/ttySAC3",O_RDWR);
//串口,波特率,数据位,奇偶校验,停止位
//保存测试现有串口参数设置,在这里如果串口号等出错,会有相关的出错信息
tcgetattr(fd,&oldtio) ;
bzero( &newtio, sizeof( newtio ) );
//通过位掩码的方式激活本地连接和接受使能选项
newtio.c_cflag |= CLOCAL | CREAD;
newtio.c_cflag &= ~CSIZE;
//数据位的设置为8
newtio.c_cflag |= CS8;
//奇偶校验的设置为无校验
newtio.c_cflag &= ~PARENB;
newtio.c_iflag &= ~INPCK;
//波特率的设置为9600
cfsetispeed(&newtio, B9600);
cfsetospeed(&newtio, B9600);
//停止位的设置为1
newtio.c_cflag &= ~CSTOPB;
//设置等待时间和最小接收字符
newtio.c_cc[VTIME] = 10;
newtio.c_cc[VMIN] = 0;
//处理为接收字符
tcflush(fd,TCIFLUSH);
// 设置输入输出为原始模式(Raw Mode)
newtio.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); /*Input*/
newtio.c_oflag &= ~OPOST; /*Output*/
//激活新配置
tcsetattr(fd,TCSANOW,&newtio);
//拉高DTR
ioctl(fd,TIOCMGET,&status);
status |= TIOCM_DTR;
ioctl(fd,TIOCMSET,&status);
memset(buffer0,0,sizeof(buffer0));
while(1)
//接收串口3的数据
length_data = read(fd_port3,buffer0,sizeof(buffer0)); //数据的发送使用write(fd_port,buf,1); buf为要发送的字符串
printf("length_data=%d\n",length_data);
printf("buffer is \n");
if(length_data != 0)
for(i=0;i<40;i++)
printf(" %02hhx ",buffer0[i]);
printf("\n");
请教下各位大神,是不是有些参数,串口调试助手设置了而我没设置。该怎么改才能正确收到仪器发来的数据。
2、你的串口接线是2,3,5三根吗?
3、到Modem Line状态里面设置DTR和RTS,选择相应的设置属性(Line CTS State、Line DCD State、Line DSR
State、Line DTR State、Line RI State或Line RTS State)。 参考技术B 那就是不对呗
需要给你完成一份吗追问
不是程序的问题,是仪器端的串口接了DTR信号线,而我开发板这段的串口没有接DTR信号线到处理器,导致我无法给仪器提供一个DTR信号。您有什么办法能解决吗?
追答好吧 帮顶吧
以上是关于arduino在接收不到串口数据 通过串口调试助手 loop开始就写了 等待serial.available()>0则 sig=的主要内容,如果未能解决你的问题,请参考以下文章
串口调试助手,可以接收到仪器发出来的数据。 自己编写的程序,无法接收到仪器发出来的数据。
stc单片机串口调试的小程序,但是在串口调试助手里,显示接收不到数据,希望大虾们帮忙解决下,下面是程序