|
|
% k7 A1 f0 A4 t& ^8 d
您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。& |$ e& t% F" u* c1 A {
) _% {& w9 Y$ A7 `& p1 A3 j3 _) t我的qt程序如下:
2 K0 H2 e- |" _& X1 e struct termios setting;4 @8 h7 o5 i' R/ G7 N- c0 M
fd = open("/dev/ttyS1", O_RDWR);
. R8 N: T" j' `; e" ]7 e( U if (fd == -1) {
4 y9 {* |/ j! h" m. u6 W LOG_INFO("open /dev/ttyS failure ...");
$ W% A7 e' s9 n return ;1 a- L5 e l+ N
}9 E8 R6 h* m3 @/ x$ {, p
LOG_INFO("open /dev/ttyS1 success ...");
) L% Q" x3 Y1 i8 \$ h/ h8 K# q tcgetattr(fd, &setting);
. p9 Q6 Z7 b1 L2 d3 C% \ speed_t speed;8 D' }0 d2 H2 H+ }3 b0 W
speed = btr;2 [- T/ i) T8 o7 n, H
5 {2 g/ O" ?0 ]) \ cfsetispeed(&setting, speed);3 Q7 {9 Q$ x+ m# _4 L
cfsetospeed(&setting, speed);. T; F0 i) p$ m+ G
cfmakeraw(&setting);
- t$ V& [4 y* i h6 L1 u) w setting .c_cflag |= CS8;3 U& J) r; A: d: r6 I$ x
setting.c_cflag &= ~PARENB;- B4 T$ n/ x% \8 c. |# @
setting.c_iflag &= ~INPCK;
1 @' z+ n j( x5 ^7 ~ setting.c_cflag &= ~CSTOPB;- w0 ?' j9 h2 e7 l0 F, w3 e4 f
tcflush(fd, TCIFLUSH);
, Q! h; H9 m. r( H* l$ g; U4 c d0 { setting.c_cc[VTIME] = 0;6 x2 a5 h! j7 f& ]" y/ y2 ?
setting.c_cc[VMIN] = 0;
# Y* u! l# w$ Q8 w tcsetattr(fd, TCSANOW, &setting);5 j. w9 ?/ ~/ _" {0 P
! z: s% O- q6 U+ ~+ g7 _2 m2 X \
int ret;
. X/ O# a2 A( C; m7 V% c char *buff = {"hello,485write ok"} ;
3 i8 ]9 Y" j4 a9 c' ] ret = write(fd, buff, 17);+ Z: r9 _# j+ a3 |6 F2 k% B, [
, v/ Q& [5 d0 c7 X$ L8 D char buff1[256] ;" s- ]* t* K# T
while(1){
' z2 o0 ^- _% O% k+ ^0 y9 C) S# E$ {5 \1 i
ret = read(fd, buff1, 255);9 s l& y3 Z6 H' Q
if(ret > 0){
: J4 V7 |) o, F6 J: k2 a
/ e1 X& i. @. d3 j. Z' d write(fd, buff1, 5);; G, Y% a+ ?; X! l3 f
) A% N2 p5 u1 J( ^/ q
LOG_INFO("rs485 receiver ret = %d " , ret);
. ]& b8 G) x* q ^
4 T: F" c( M# L6 c' F" n }
' s+ A7 g6 P1 W. H
7 r+ ^; G+ y( d }1 }& [ n( C, g7 O1 w9 c) r
. L) f* K) P5 N
我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
' L, {. O' k9 i- L0 `) E" f' n% }& e6 k
* g1 q4 V l6 M9 V; A$ M8 ^4 J! ]( X; j8 `5 g5 n
|
|