|
1 Z# v( Y) z( R) l6 u9 ~2 {
您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。0 S# N+ ^& Y3 i, a$ x' o
6 w) S) d5 H: c$ k
我的qt程序如下:
, g ~+ @0 Z) S4 t" L struct termios setting;
4 q: J3 k7 D& D fd = open("/dev/ttyS1", O_RDWR);) e/ m0 h3 u0 U2 D( f8 a
if (fd == -1) {
% S% G; K4 G. | LOG_INFO("open /dev/ttyS failure ...");1 C+ |- r9 z" w8 f) K b, E; ?: n) D: z
return ;2 D3 l# u, K) E* t
}
& o0 j4 P7 T9 [0 ~ LOG_INFO("open /dev/ttyS1 success ...");
# m& A) S; g. `' v' X, Z# \ tcgetattr(fd, &setting);* x; x7 X' i. u' {1 V
speed_t speed;; `" {8 T: J6 I1 A& ~
speed = btr;
/ S' Q$ i! r( u) _: N
0 F& q, G; |0 _! z' l7 T cfsetispeed(&setting, speed);6 n+ s; h2 E, P$ X4 Y r
cfsetospeed(&setting, speed);6 f0 b* u, ~6 @( _* B( }$ P; p
cfmakeraw(&setting);
5 I3 }2 O5 @2 r8 K$ w, I setting .c_cflag |= CS8;
6 b5 x# N% k5 l& y0 A) p3 ~ setting.c_cflag &= ~PARENB;* f, Y3 ?' L8 b/ g4 W$ o
setting.c_iflag &= ~INPCK;
' x' i' ^# I1 i; \ setting.c_cflag &= ~CSTOPB;' H1 ^* m$ P* w6 G7 P L% g3 n
tcflush(fd, TCIFLUSH);; U2 J8 ~$ q" ]: X0 w; h: ~
setting.c_cc[VTIME] = 0;
% w9 P% y8 {9 k" P6 Z setting.c_cc[VMIN] = 0;9 I6 O, x, \& W, P* o1 J0 k# z
tcsetattr(fd, TCSANOW, &setting);3 `2 @: r/ Q4 u5 [
0 x" a! S: l6 H/ `% M a int ret;
# h# G+ f' b( e V9 `" K; s% T char *buff = {"hello,485write ok"} ;
5 X( N5 X( S( V* ~ I ret = write(fd, buff, 17);
# T# p& g4 x+ m7 _8 d5 M8 J9 G% B$ ]3 h- }0 b3 W% R7 N, K
char buff1[256] ;
& X, y4 S. z6 \3 O7 u while(1){
3 T* q, s) y% u) u/ N; i, S( R; z! v* }
ret = read(fd, buff1, 255);1 B2 m! E( F" O
if(ret > 0){
0 T; Z4 }* E w, X$ L+ f' u/ ^- d: F4 j# m* R( o
write(fd, buff1, 5);
$ z9 e; n0 y8 \5 Q% k' g6 b @
" q& o* u# f) @2 x/ T8 R LOG_INFO("rs485 receiver ret = %d " , ret);
9 G* I3 |. z. N/ v* V) M+ I7 u5 _; k8 Y* R @: ^7 F: a: X
}
1 o1 U" k1 ^. u+ r" u: _
2 Q( N* F6 y' I' G8 {2 a5 D }! R3 o% v! p$ x _
& i" h& t* w. |( M# d4 n% l 我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?4 \8 r( a6 d3 t
, N& {8 }) O5 Y
R" i* F6 b5 Z+ L, M0 B' P! i. h! |
|
|