|
|
8 k/ E( ~9 t+ Y" w2 T您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。' d8 J9 l4 r7 p8 m: [3 P2 S
) k) t* y+ Z8 Z+ g7 x3 m+ r5 X我的qt程序如下:2 m1 R0 h+ R* c
struct termios setting;5 o8 _1 c( _$ n9 H- H" N
fd = open("/dev/ttyS1", O_RDWR);
$ w! {6 A$ e n; X6 h if (fd == -1) {' L3 C- I& ~8 _
LOG_INFO("open /dev/ttyS failure ...");9 A3 }3 Q% x1 ]; |% V
return ;4 N: ]7 F( O3 F5 l/ S. Q
}
, [3 T: t6 I% S5 } f8 m LOG_INFO("open /dev/ttyS1 success ...");
! B, Z' f: y* D tcgetattr(fd, &setting);2 U8 V; ~! G/ k+ k, n( N
speed_t speed;0 x8 T9 e! {1 s# O% v
speed = btr;
* _+ T; g, E; K
% S. m1 t2 _3 M; q& c$ M j, ?2 S* H cfsetispeed(&setting, speed); ]% U7 c: z2 A/ ] e
cfsetospeed(&setting, speed);, d5 Y$ S; r! }
cfmakeraw(&setting);8 k2 Y) H9 Y" E5 @5 } k
setting .c_cflag |= CS8;
4 X+ {8 C) `1 q( f$ K& B9 }0 E setting.c_cflag &= ~PARENB;
' i1 u% b- |: y/ p. m$ G( E N setting.c_iflag &= ~INPCK;
1 ?2 [- _2 j6 F, k9 | ` setting.c_cflag &= ~CSTOPB;
6 ^, g! j2 p& @2 b tcflush(fd, TCIFLUSH);
. d# B; P3 i! z setting.c_cc[VTIME] = 0;1 r( E$ D5 \. t1 I4 q; E: ~: Q
setting.c_cc[VMIN] = 0;6 p5 Z, @" z) M- y: f( T
tcsetattr(fd, TCSANOW, &setting);) M' D9 A0 y' O$ `: O3 ?3 B( O' O: _% {
3 C& Z0 ?) W u2 q, v! F
int ret;( ^/ w3 V$ ^* @9 C7 Z/ u& }- ~% E
char *buff = {"hello,485write ok"} ;" `4 m5 c3 s" y5 `) T8 r. b- S5 Z& s
ret = write(fd, buff, 17);8 G2 d" U3 D2 M$ d
7 a2 ?; J) W! n3 u; w
char buff1[256] ;( \* M* a; [; ?
while(1){( ?8 C2 W; V0 a6 `# p- p
5 u* S0 O5 V6 b& [# l" |
ret = read(fd, buff1, 255);
! `- }. k# s7 W! _& m if(ret > 0){/ H) U! ~0 O/ p0 {$ I' }
; |" N4 l# p' W7 ^, k7 V write(fd, buff1, 5);2 ?7 G. B# }- h6 [& c. b( m) t
* a/ V2 e6 ?/ O' K
LOG_INFO("rs485 receiver ret = %d " , ret);
( A6 O6 x/ @: k% g5 D$ \3 Z4 p( r! U. w- ?* _, U
}# R) g" r( L$ b
! Z' f! I! x4 r5 ?0 T& z
}9 Y3 P' b* p/ [- Q4 |' v
, [7 ]7 P+ v3 I9 e
我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
- F7 m/ z8 i' S5 |" y6 ?
$ b8 B! i, t& ~ W0 d8 w% ]5 ^" b. ~; S* w4 Y. k
- s# f! X% _( d! X) O$ T |
|