|
|
# O; V8 ]9 q- h" H: }
您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。' V8 A: B& S. m5 Z! M+ I8 r2 d
& P2 s7 K6 K/ g C3 ]' ~; w我的qt程序如下:
8 l/ `1 V" @5 Q" p struct termios setting;
' _" ? n3 D$ |) k fd = open("/dev/ttyS1", O_RDWR);$ Y- g- n: w$ |9 |4 x5 e( Y
if (fd == -1) {% ~ R- v0 e9 k
LOG_INFO("open /dev/ttyS failure ...");( g1 D0 c+ S. B: I- C: D$ E
return ;8 q% k' C7 g. {! Q
}
& b9 h7 O6 Y1 u) z% U LOG_INFO("open /dev/ttyS1 success ...");( V0 m5 m3 v/ ~; I7 L5 f
tcgetattr(fd, &setting);$ Q! T! \& E0 z t, S8 t
speed_t speed;& p: c: ]8 P/ @$ B
speed = btr;
# G" ]; n: |$ M1 I- F# J* x8 O$ L) f4 r* g; @
cfsetispeed(&setting, speed);
3 C( C# ^8 |1 K+ y: G6 ?' [, T cfsetospeed(&setting, speed);* _9 W( D+ h6 c; e7 M: {
cfmakeraw(&setting);. z: _5 v1 ?* ~
setting .c_cflag |= CS8;
9 i0 z4 I9 l% p5 V: r2 w0 K; S setting.c_cflag &= ~PARENB;
7 J) F* F; V: r1 x* K setting.c_iflag &= ~INPCK;# L; s3 y" K6 E! H% ?( E5 W; V+ b
setting.c_cflag &= ~CSTOPB;( F* O4 n* p, E, d# T
tcflush(fd, TCIFLUSH);
. b( V% O& I1 r! d2 B setting.c_cc[VTIME] = 0;
! V/ q C x) O" n; a setting.c_cc[VMIN] = 0;
7 k% Z) _2 v. V0 w- P( x9 o6 ? tcsetattr(fd, TCSANOW, &setting);
1 y4 q5 _) Z* F- U. `1 s3 L
8 ]4 u( M# ]1 u6 h! Y: f int ret;
/ R# K% Z$ q7 n5 z8 \ char *buff = {"hello,485write ok"} ;9 a( r7 e$ y6 r1 l, ~* r2 i0 E
ret = write(fd, buff, 17);
4 g, x% k0 k8 c: C6 \
3 q9 V9 P8 ?0 h1 e3 S. x! Z char buff1[256] ;
2 v% h& O# t0 ^ while(1){2 x, r+ S* a: M( h
2 J. ^4 H! e% k+ z/ L1 I
ret = read(fd, buff1, 255);8 d% _6 k* o: J- g2 p* S
if(ret > 0){- F, [5 p- }- T$ d! L+ d
, j9 {, f$ l1 ^$ v: {; P
write(fd, buff1, 5);/ H" e. p+ Z! u# r7 z2 t+ t
! _* y9 k5 O$ h LOG_INFO("rs485 receiver ret = %d " , ret);& s! L9 |- G8 V5 g
2 ]6 m) W5 N0 y* P& d% o. B, g0 W) p) k$ C W
}
6 N) ?* x' ~# W( b, N* z) _8 ~$ ^: h5 x0 y' y( Q% M5 o: U
}
9 n; Z4 i$ {$ j0 O0 d
2 o9 J3 o# G7 p) F( u 我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
% \& i# l5 v! j7 K9 k! M9 i" o
4 G. y$ x i# G: @3 \9 g' n
/ s1 s7 N. `2 Q1 n. p% F9 p: A3 K# T7 s, l2 T v
|
|