|
|
' W8 R5 E- [1 X$ y您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。
3 A$ q! ?/ t% t6 Z! ?# M) D- v. O) R1 K$ ~
我的qt程序如下:& [) K/ G, F; K' l
struct termios setting;' _* z$ |. S8 w* u/ t9 Q( a
fd = open("/dev/ttyS1", O_RDWR);
7 {. ?" q' u4 S: k( x+ S ~ if (fd == -1) {
2 c- F) _9 B0 t. b0 E& t! a- a( ~ LOG_INFO("open /dev/ttyS failure ...");3 h9 V& I2 n8 n
return ;
' r( ^' _7 c, a j }
' \' J: l+ Q% h* W& L# n/ g$ ~1 k& S LOG_INFO("open /dev/ttyS1 success ...");7 r4 w) r/ a$ Q' `3 F2 g
tcgetattr(fd, &setting);% u# b) v" S1 \: {
speed_t speed;
9 H- F, I3 C% p3 o* J! R$ k" d4 H: M speed = btr;
1 e/ d, B# a3 W3 ]/ v: v* q
0 r* W2 S% p, [ cfsetispeed(&setting, speed);
" V; O* \ Y- v% b cfsetospeed(&setting, speed);+ G3 M/ X/ Q7 F' b
cfmakeraw(&setting);4 _+ W/ {9 Z/ w! h
setting .c_cflag |= CS8;/ H" _ s8 Y' x& n4 m; D M" S
setting.c_cflag &= ~PARENB;
6 _0 t. n0 C7 j! g! ~8 N" N setting.c_iflag &= ~INPCK;
3 y7 k! G# j0 ?, i setting.c_cflag &= ~CSTOPB;9 V6 w7 a$ f8 o& l: J* {4 p; n
tcflush(fd, TCIFLUSH);
0 o% @# ?' g, ^) M2 T setting.c_cc[VTIME] = 0;
4 o, ?1 a5 U8 i1 H7 L- G2 U: L4 h1 M setting.c_cc[VMIN] = 0;/ f) e, }( _. }! \( z; {
tcsetattr(fd, TCSANOW, &setting);
+ I+ _! R; U+ z T: q6 w& ^) o7 A/ n2 k x1 ?
int ret;
& C+ |' o+ K: E P( @- T6 a7 q char *buff = {"hello,485write ok"} ;
% _1 T2 C: k K5 i O% p% e ret = write(fd, buff, 17);! J# @& w/ W, [0 X/ U0 Y8 s& w
2 C* K3 t% n0 I" n0 ~* g char buff1[256] ;6 }, p3 l3 ~0 j3 o+ ?; T; Q
while(1){
3 i! D) g% E0 w2 s
" w8 d' z# ^0 _) F ret = read(fd, buff1, 255);
$ L# N/ f( u+ x1 }$ b if(ret > 0){8 E1 J3 @& f6 J9 ]3 I4 N' `7 {6 |
( ^9 { w4 i f7 d" e* G
write(fd, buff1, 5);' ~. f6 k0 s/ F, }$ c- M
+ q1 t" a& C0 f ^1 b
LOG_INFO("rs485 receiver ret = %d " , ret);. y6 B: M5 l% L
9 }3 c Q& E8 V, {2 O' ?
}
. P" X8 L* b8 V1 K$ {5 p! c
0 x4 }+ I7 l7 X }
: e! R* S- ]4 T7 l
( O' v. R# V7 J3 i& }7 P 我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?1 I9 x# L+ r1 W: L7 o$ ?
& N4 d0 c7 u7 C& Y8 E
' h; o! h. \2 E Y7 |8 G! z0 n
6 V1 ^ I+ j$ C9 I9 z/ F |
|