|
|
! s4 |6 f5 A0 N, U7 j您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。7 f5 W3 _2 e- r
% O. P: ~, q- R$ l K! S我的qt程序如下:# s$ M4 Z+ ~! Q: o
struct termios setting;
) \/ Z$ _9 x4 A% J7 v fd = open("/dev/ttyS1", O_RDWR);) A2 H. `' q6 \
if (fd == -1) {
& q$ m7 ~; I1 \ LOG_INFO("open /dev/ttyS failure ...");6 \& P3 i9 w. }( w6 ]$ _6 n! J; }
return ;
' C8 p, E- {, O5 o }
9 V, n0 E: o2 h LOG_INFO("open /dev/ttyS1 success ...");
8 K; h9 [1 ] U- o, x4 C6 m" t0 {$ Q tcgetattr(fd, &setting);
. Z/ \1 k1 b, e1 q* b# | z% l+ S1 B speed_t speed;! E9 _; m" u8 m" v/ x3 x
speed = btr;8 s! H' u9 o3 ~ H. ~! U& S
) _/ I, N3 R7 t; i4 ?# x cfsetispeed(&setting, speed);: @3 I' b7 w3 _! C; b: H+ Q
cfsetospeed(&setting, speed);
0 ?) t. s! g/ u2 t cfmakeraw(&setting);7 S0 f; b# }6 {9 [: T
setting .c_cflag |= CS8;
* t4 ]8 d$ T" _: `# _! P: H7 h3 i$ v setting.c_cflag &= ~PARENB;
2 [2 w0 r( t _6 B0 U3 v1 y setting.c_iflag &= ~INPCK;' `0 O4 d5 {. L9 z) |/ ]7 [4 c8 E1 r
setting.c_cflag &= ~CSTOPB;
: Z% K. k1 u, }" F' A" O tcflush(fd, TCIFLUSH);
3 P+ L: w6 \- ]: L" ~; h setting.c_cc[VTIME] = 0;& T$ p( l9 ]. O5 [! U
setting.c_cc[VMIN] = 0;
4 Z' O. j( S1 D) ]" [+ e tcsetattr(fd, TCSANOW, &setting);
* F- B3 E# U' X- A- [1 v9 ]1 |$ l: Y; W( l0 A4 z
int ret;8 [; P: k( c: e8 z. H/ q' `
char *buff = {"hello,485write ok"} ;
" x" A( Z5 x9 ^; S1 l# t ret = write(fd, buff, 17);
7 F5 R: g6 E0 o$ o; d& s3 O
6 W* R: V# g: i: X7 j" U' p char buff1[256] ;
7 _7 C: _! x' k& _ while(1){
+ G2 E3 t( X& ^5 s' z
0 `2 W! R z9 `' s4 B/ |% }6 M ret = read(fd, buff1, 255);; e7 m( ~7 W1 l: U
if(ret > 0){8 C( e" f$ T O' e6 o9 |6 w
! h* f4 C, i4 [7 Y0 f) S. c$ h3 B
write(fd, buff1, 5);* Z7 C; k4 L7 t' s" q
2 l( F/ c( r& s( Z* k6 o5 u
LOG_INFO("rs485 receiver ret = %d " , ret);
6 S; O" U7 t2 o3 y/ G+ i& i$ i3 W/ ^
}
* E' ^' U' F6 [2 q9 R9 o) y
$ w' h& a- g9 H8 B }" |+ ?3 e( S7 ?; V
/ I' w: [( x3 l! V6 _1 X9 x( M 我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
- P- _6 t8 J9 ~2 N) O' m4 L) d' }0 |: r5 t
6 b; D6 f) _2 x2 o k
' q" v0 ~# J/ P3 {% ?
|
|