linux串口通信中设置软件控制输入流的开始和结束

首先,如果我们不是开发串口driver的,而只是用串口来传入自己定义格式的数据,然后根据得到的数据做相关的解释,我们需要设置这些,

 options.c_lflag  &= ~(ICANON | ECHO | ECHOE | ISIG);  /*Input*/
 options.c_oflag  &= ~OPOST;   /*Output*/
然后就是重点,如何设置software flow control,因为自己定义的数据格式中,一般会有标识标识数据开始和结束,如何定义,请看下面:

/* open soft flow control */
options.c_iflag |= (IXON | IXOFF | IXANY);

/* flow start with 0x11, end with 0x13 */
options.c_cc[VSTART] = 0x11;
options.c_cc[VSTOP] = 0x13;

这样,你往串口发送数据时,串口就会认出0x11和0x13之间的数据了。当然,如果你传输的不是ascii,你得控制数据中不会出现0x11和0x13。


你可能感兴趣的:(linux,input,output)