|
|
9 `( E k6 T) N/ F( G" ]您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。* C4 n) H- s. ~1 n! @/ ^6 V# j S
3 R$ K' Z* T* r1 w# L
我的qt程序如下:
7 Q% X( b$ ]7 ]" W0 V$ ?' Q+ x struct termios setting;1 c* a3 o0 y3 b
fd = open("/dev/ttyS1", O_RDWR);
: ? u7 e7 V: |: ? if (fd == -1) {, j0 y+ {; O G
LOG_INFO("open /dev/ttyS failure ..."); }: `. ]- O& C5 u. }# Y
return ;
5 d) h, u* V3 d& {# h$ b }& t% E3 m" N; _ A( ?
LOG_INFO("open /dev/ttyS1 success ...");
6 T7 o) V4 q+ y5 k, g+ L$ } tcgetattr(fd, &setting);0 p6 x% O2 |+ h& X8 _4 u
speed_t speed;
. w3 o6 ~- y3 w& i5 R8 f speed = btr;6 t/ B! G6 X3 T
/ O+ h1 N, Q: Q7 @. ?/ P
cfsetispeed(&setting, speed);
1 q0 D( Y8 k( ]' ]2 I/ z cfsetospeed(&setting, speed);
+ m: n+ U2 m1 Q8 Z+ x# v# J cfmakeraw(&setting);
2 f! t* M, O3 | setting .c_cflag |= CS8;
7 C9 G3 U4 U' A/ s; R setting.c_cflag &= ~PARENB;/ M5 F9 w; _5 ?% E
setting.c_iflag &= ~INPCK;
8 Q% K& |2 U0 V3 d setting.c_cflag &= ~CSTOPB;# R$ R% H/ h% |
tcflush(fd, TCIFLUSH);
$ D6 j- U' Z& i setting.c_cc[VTIME] = 0;
/ L& {( }+ s" X b setting.c_cc[VMIN] = 0;; @/ \0 y2 |2 y# P4 L
tcsetattr(fd, TCSANOW, &setting);
% v' X2 u! H: D4 N ^& `' t" e
9 n5 Y* J% ^; ?+ ^' o int ret;1 u. T* j% i$ i, b7 r+ R
char *buff = {"hello,485write ok"} ;
2 [5 k1 C. I, |( F& O* b. k% g) ^, S ret = write(fd, buff, 17);
+ A* M U$ T* F2 s; C4 U0 J9 E- g; G% `+ R7 \
char buff1[256] ;
& F$ o2 n0 b. e4 `5 Z- H while(1){7 F* n, q# u3 i% b3 ?
4 d2 `0 G+ x2 P. j0 f
ret = read(fd, buff1, 255);1 r4 u. Z2 y1 N- m- _; S9 O4 i
if(ret > 0){
2 G* { b2 F! ?% O% N, q# ~0 e' ?% t' I9 G; O9 z+ P( K" Q* V
write(fd, buff1, 5);
" [7 Q ~ z( s- G8 u
4 V: V0 Z0 a6 F" { LOG_INFO("rs485 receiver ret = %d " , ret);
* w# x4 x! ]# g. _) K" q! x# n* d/ J* R' B
}* |* K$ }( s& Y2 r0 N& b
, k) B5 I: r1 q% U) K }! t$ Q& H: |) Z! f) n2 P) n. R2 P D# L
% P1 r7 z7 {9 ], E0 y 我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?6 r4 K' _3 ^2 v; e: j+ I: x
) M% W" d" c$ _1 B# m
/ [/ A7 t. Y1 G1 Q2 H2 C5 Y L T0 D5 d+ B6 {" u
|
|