|
|
; k: c" p4 E4 x: }2 a9 U
您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。. t4 O" ^, T- s6 {/ I
4 a" R: x* ^/ n. a; X; V我的qt程序如下:! O- `7 I* _+ t% R& |% x
struct termios setting;
9 F3 o* A4 O/ a( p fd = open("/dev/ttyS1", O_RDWR);
$ H8 l, |2 N7 Q" h6 d5 b4 Y if (fd == -1) {
% a" v- ?2 H+ F9 T1 r$ h LOG_INFO("open /dev/ttyS failure ...");% O/ S+ K' A( j+ { n; r
return ;
3 k- t2 A4 e3 ~2 L }) h. g1 o& [9 e$ _% }
LOG_INFO("open /dev/ttyS1 success ...");
1 ]' M8 `4 F) Y/ e# z4 T) b tcgetattr(fd, &setting);7 l( W, b" \; w, ]
speed_t speed;
t2 P& ? b0 m& d1 u) P speed = btr;8 f2 w1 a; N: c, K4 @& @4 R
8 A1 v4 O- S: |
cfsetispeed(&setting, speed);
" o7 |9 p4 `6 n' x1 l$ m- e% ?/ {1 G cfsetospeed(&setting, speed);2 k7 U# A5 i+ ]: G' w, g: X
cfmakeraw(&setting);" ]) q( a* O- g# S0 _9 W
setting .c_cflag |= CS8;
8 D, B. j6 ?: S" ~, X$ k' b# A0 N setting.c_cflag &= ~PARENB;/ l/ F9 Q X4 {
setting.c_iflag &= ~INPCK;- Q* P, z: P. ]! r5 t4 o. D8 R) f
setting.c_cflag &= ~CSTOPB;
' y* B' @9 z& t) u' e8 x tcflush(fd, TCIFLUSH);8 W) P6 [/ _0 S$ g, U5 M
setting.c_cc[VTIME] = 0;
7 _4 Q# _& D B4 E setting.c_cc[VMIN] = 0;8 N. J" e' S2 n( a) A
tcsetattr(fd, TCSANOW, &setting);
: Y2 L/ K- T: G2 T2 u/ B. |# `1 Z; w
int ret;
- d+ h/ `7 t% g( Y. q char *buff = {"hello,485write ok"} ;
$ Z z/ [3 J/ L; y ret = write(fd, buff, 17);/ u9 B, v. i8 t$ C0 e- V
, V1 S/ N2 x9 d; o1 Z9 J! Z char buff1[256] ;. o/ |, t7 i1 P$ F3 O7 e: ~9 G4 v. ?
while(1){
5 h& ^" A, m1 A) ~' ~* n# }6 }3 m, F3 a4 K( g" B `4 \5 A: j
ret = read(fd, buff1, 255);1 t1 w( ?) Q4 P$ ^6 y( l
if(ret > 0){3 G3 O) j. _: _. x
# h) s n$ w2 A" D) @ T4 N! V& H4 H
write(fd, buff1, 5);
+ {- ~/ @5 `! {- b) W( M# [9 q$ D2 f8 ]- c. X; {
LOG_INFO("rs485 receiver ret = %d " , ret);
+ g- c8 X4 h- L6 r, ~- P8 X: N- w7 M% u; Y' K* h, Q. j
} T) d. t, M# {9 l# m; l
! v2 X( q- e' E& {
}6 m$ M. X. M4 _) p2 d2 ]1 J
7 Z7 k) x" o# C! c7 Z* d/ s* t 我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?' t' U. [4 y5 L5 y6 N |
, d0 b3 s" ]' a7 Z1 Y) Q! h' R
! p# l/ {( A7 [9 I' `) B7 v, ~3 S* }
2 F; o- i0 l! A, M$ ?# C |
|