串口编程求助高手!!
希望高手指教!
7 `% B- c# j7 D: W3 R我在一块linux系统的板子上做了一个写RS232口的程序(linux)" o* B2 K' @1 k; U6 o
设置了串口的属性如下:(rs232Fd是串口描述符)' R7 D0 G% ^( s: n N
/*波特率9600,偶校验,1停止位*/1 T: k. u K7 W; a- q& Z
tcgetattr (rs232Fd, &term);1 z% u1 a7 V+ `3 [5 x! L0 c
cfsetospeed (&term, B9600);& G8 u% f% `' W3 Y! u0 J
cfsetispeed (&term, B9600);
* _) R$ L+ d3 s) ] K! i- X5 q* q* k) f n
term.c_iflag = 0;
8 z0 q2 Z2 L* G, U# Sterm.c_oflag = 0;" ]8 `- q) J) D# Z- T
term.c_lflag = 0;1 @% z t. R4 F- }5 G
term.c_cflag &= ~(CSIZE | PARODD | CSTOPB);
' k3 H% `1 A* ~+ P- |term.c_cflag |= CLOCAL | CS7 | PARENB;
' j: I1 P# \# F! Wterm.c_cc[VMIN] = 1;
" Z+ E3 n! C }/ Bterm.c_cc[VTIME] = 0;$ R" A2 O& N _4 K6 h: y
用串口调试助手接收,串口调试助手的属性设置为9600,偶校验,7数据位,1停止位,此时接收成功。" G! G, h; M8 ~3 b U4 T* V
可是,当把发送程序的CS7改为CS6.CS8....,或者把发送端的校验方式改为奇校验,或者改为2个停止位时(串口调试助手的属性不变,发送的数据固定),仍然可以接收到正确的数据。 W* }$ i4 Y/ X0 [6 L
% [, F" t' c8 H4 v1 E% s5 m哪位高手可以指教一下,接收和发送方的串口属性不一致,为什么还可以收到正确的数据啊?
4 p* J/ H9 y) j! P# {我晕了:confused::confused: