|
发表于 2003-10-17 10:54:37
|
显示全部楼层
今天有所得,与诸君分享
1.即使设定了options.c_cflag |= IGNPAR,但是如果同时又设置了PARENB和~PARODD,且对方串口设成无校验,本机仍然可以收到从串口发来的数据,但是数据不正确。
2.只要使用了O_NONBLOCK或者O_NDELAY参数,如果不设read的返回值>0的条件,那么会收到大量重复的尾字符,例如:90 ebbbbbbbbb。无论VMIN=1,VTIME=0还是VMIN=0,VTIME=1都如此。如果不对read的返回值加上>0的条件,那么就会收到重复尾字符,如果VTIME的值加大,尾字符的数量就会少一些,直至消失。
3.如果第一个程序采用NONBLOCK的参数后运行,在运行一个类似的程序同时读取串口数据,居然也能分别从串口读到数据,此时fd相同!
4.利用fcntl设置参数和在open是制定参数的效果相同。 |
|