当前位置: 技术问答>linux和unix
串口怎么会把我发出去的数据读回来?
来源: 互联网 发布时间:2015-08-07
本文导语: 我在linux下用串口发送“ATr”到gsm模块,正常情况下,gsm模块会返回“OK” 可是我直接用以下语句读串口, result = read(fd,SendAtResponse,255); SendAtResponse[result]=0; printf("n%sn",SendAtResponse); 返回的是: AT OK 就是说把我发的"A...
我在linux下用串口发送“ATr”到gsm模块,正常情况下,gsm模块会返回“OK”
可是我直接用以下语句读串口,
result = read(fd,SendAtResponse,255);
SendAtResponse[result]=0;
printf("n%sn",SendAtResponse);
返回的是:
AT
OK
就是说把我发的"ATr"(当然,还返回了几个"回车"和"换行"的信息)也读回来了,为什么会这样呢?
我是这样设置串口的:
options.c_cflag=baudrate|CS8|CREAD|CLOCAL;
options.c_lflag=0;
options.c_iflag=IGNPAR;
options.c_oflag=0;
options.c_cc[VTIME]=250;
options.c_cc[VMIN]=1;
tcflush(fd,TCIFLUSH);
tcsetattr(fd,TCSANOW,&options);
可是我直接用以下语句读串口,
result = read(fd,SendAtResponse,255);
SendAtResponse[result]=0;
printf("n%sn",SendAtResponse);
返回的是:
AT
OK
就是说把我发的"ATr"(当然,还返回了几个"回车"和"换行"的信息)也读回来了,为什么会这样呢?
我是这样设置串口的:
options.c_cflag=baudrate|CS8|CREAD|CLOCAL;
options.c_lflag=0;
options.c_iflag=IGNPAR;
options.c_oflag=0;
options.c_cc[VTIME]=250;
options.c_cc[VMIN]=1;
tcflush(fd,TCIFLUSH);
tcsetattr(fd,TCSANOW,&options);
|
ate0设置成不回显
ate1设置成回显
ate1设置成回显
|
找一本AT manual
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。