|
C. { K* L, U您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。! m* }" M* v# u+ ~0 d7 ?
# j: [* Y* m8 n, P s/ C我的qt程序如下:
$ w$ [5 U" k1 Q" n' v5 `* l struct termios setting;+ B3 j( c3 s! N! m% I
fd = open("/dev/ttyS1", O_RDWR);" ~; ~6 [ `2 V% h9 A! \' c: T
if (fd == -1) {
& N- P* N6 S. ^; e6 _& z" _! N LOG_INFO("open /dev/ttyS failure ...");
5 |6 \/ R4 R/ L+ v# [ return ;, P5 a; Q: C M1 u5 U9 u
}
) R/ l: c1 g. I3 v; k- ~ LOG_INFO("open /dev/ttyS1 success ...");1 f- ~9 ^. M* |" _6 `
tcgetattr(fd, &setting);
* b8 n3 U. k; u" q- f3 q* Q speed_t speed;
; Q5 ~$ U( p6 r: m" F. t E speed = btr;- o X' E2 S4 H( _
8 T% a# R) E8 u7 Z+ D& L2 m
cfsetispeed(&setting, speed);' q& p. ~% t' `# x
cfsetospeed(&setting, speed);# p4 i( ~# ]3 m
cfmakeraw(&setting);! a+ P9 {7 I/ \0 e
setting .c_cflag |= CS8;( H; X. s& ?) B0 \8 V' k
setting.c_cflag &= ~PARENB;8 p6 E2 }5 V" K, k5 C
setting.c_iflag &= ~INPCK;7 k5 E* q i' i' Z0 }
setting.c_cflag &= ~CSTOPB;
- d) E/ r/ S! y' N4 K" a tcflush(fd, TCIFLUSH);
$ ?7 H& H* [/ n% h; q- s setting.c_cc[VTIME] = 0;% o. Q* B4 `$ D9 Z
setting.c_cc[VMIN] = 0;
* h9 \# S7 v' a7 \" R tcsetattr(fd, TCSANOW, &setting);
- Q: H# x9 M/ m5 T1 ~. l- n! F% Y
" m. S% M4 j4 D3 X int ret;0 e2 |5 P' u1 Z% c. U
char *buff = {"hello,485write ok"} ;
& W( ]+ N8 k" ?1 o ret = write(fd, buff, 17);
7 i+ r0 `5 x! `9 [7 w( {. X# }3 @( P1 ?. _
char buff1[256] ;6 @) _9 m( H( I/ Y* F _
while(1){
6 S& q$ Z! B& g
& N y' b0 h; P# ~1 k0 q ret = read(fd, buff1, 255);+ o+ ^% s6 ^( M( _5 W
if(ret > 0){0 f* O5 f- d' I3 P% r. J
- y3 k4 O4 c: V O write(fd, buff1, 5);
$ x* u4 R6 h- F5 l0 a5 R" I' z5 ~- B& C/ J+ J3 `' ~2 W
LOG_INFO("rs485 receiver ret = %d " , ret);
6 S1 ?% s( Y. o2 ^% \9 g' ` h; k) V2 d8 u' E2 y" e
}) r/ v `2 ^9 g6 L/ L. C
4 D4 E A7 i8 w. K, x6 W
}* Y# {) O! o" e7 z Z
7 @1 s" F7 N) X1 G- V3 X 我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么? y1 D$ Y# C! D3 J3 g' i' ?* n
' F6 c4 q$ ~3 P" j/ U, n: w0 Y# }( u* B; b- N/ S
$ ]( d( i2 {$ i5 [
|
|