- 论坛徽章:
- 0
|
我写了一段程度访问终端串口3:终端是实达netterm810
char c[5];
char term_name[30];
int fd
sprintf( term_name , "%s" , ttyname( 1 ) ) ;
fd = open( term_name , O_RDWR ) ;
strcpy(comm0,"\033!0;0;0;0X\033[/50h\033[/53h\033[/54l" ;
write(fd,comm0,strlen(comm0));/*打开串口命令,特别注明:\033[/54l表示终端接受到一个辅设的字符直接送主机,而不是等到一个回车才送主机
strcpy(comm0,"\x1b[/51h\x1b\x5a\x30\x0d\x0a\x1b[/51l" ;
write(fd,comm0,strlen(comm0));/*测试辅设命令,如果正确返回"Z0OK"*/
read(fd,c,4);/*读返回值*/
strcpy(comm0,"\x1b[/50l" ;
write(fd,comm0,strlen(comm0));/*关闭串口*/
if (!strcmp(c,"Z0OK" )
printf("成功!!" ;
问题:当执行到read的时候,必须等到终端键盘按一下回车程序才会往下进行,结果会显示成功的字样,我不明白为什么非得等一个回车,不在终端键盘上按回车的话,程序停在read上面,怎样才能解决不按这个回车呢? |
|