|
. [3 _) D( Z( w$ I& n, ~
您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。6 s Y$ M# i2 c. R# S+ m4 o9 k
3 l9 b; l$ B5 r6 N' U: x) M% w
我的qt程序如下:
@- o$ \, M! V+ h struct termios setting;
! P. i5 t- M5 K2 l fd = open("/dev/ttyS1", O_RDWR);* ]7 k) V& \6 A( E# |0 G
if (fd == -1) {% Y9 G2 J6 M- K5 G2 b& j
LOG_INFO("open /dev/ttyS failure ...");( Q$ b6 D, ^: {, T l7 z- A
return ;
* Y* l$ u3 G8 ^5 H s }2 r( }/ d5 R, X2 _$ N
LOG_INFO("open /dev/ttyS1 success ...");
% w" E# ]$ R9 B3 z5 B$ o1 P1 R tcgetattr(fd, &setting);3 a5 s3 ~4 u5 q; S- V9 J! v9 Y
speed_t speed;1 z X" \# }& ]/ b- S" F
speed = btr;
! M5 R4 t7 Z+ U& b4 J$ U! ~# {% X+ X+ R \ w
cfsetispeed(&setting, speed);" C) }6 R+ U' ?# Q' E
cfsetospeed(&setting, speed);9 U. }/ U; P0 c H0 F! O2 W
cfmakeraw(&setting);5 S8 k8 ?8 {4 P* U# y. }
setting .c_cflag |= CS8;
7 f) J/ w9 \: {; K* G& e5 T4 ` setting.c_cflag &= ~PARENB;
1 K7 ~' U+ ~ _+ @+ `# Z setting.c_iflag &= ~INPCK;
) s7 z9 D) C" M" @ setting.c_cflag &= ~CSTOPB;+ v8 Q0 t- `; L& S0 m
tcflush(fd, TCIFLUSH);$ u9 B# q8 S {3 n5 S
setting.c_cc[VTIME] = 0;3 V/ n7 r# x$ w; f( {; j& O3 t/ ^
setting.c_cc[VMIN] = 0;
% F3 }8 F* O: \. f. e+ o- n tcsetattr(fd, TCSANOW, &setting);. {4 t) [& y9 U: S$ [
7 F* f+ N0 h3 h4 M( Z4 q
int ret;
" {% x p, T' X$ v% j3 M char *buff = {"hello,485write ok"} ;
2 d. H) v `. q+ v0 o ret = write(fd, buff, 17);
1 P% v" T- i% z' V6 D0 l+ h2 W }) `+ f: g H3 d
char buff1[256] ;
0 k1 J4 m K* Z3 P3 `+ c* I while(1){
S7 y$ M0 v( {1 z; P; e/ g+ l' e$ ~ J# U: r" A/ c
ret = read(fd, buff1, 255);
p2 X7 f- |5 v, X% M2 x if(ret > 0){6 }; {- u3 _( W& P
1 t9 {3 N$ J; W- p
write(fd, buff1, 5);$ a& A8 W; r/ a" g; V2 ]
: u4 i/ P; N7 p
LOG_INFO("rs485 receiver ret = %d " , ret);5 c7 O- h( F1 L4 n# F
# }* j+ |: i6 _: ^
}# y. U/ K% T7 v8 h; P+ w! k6 z/ |* D
2 I& \: T1 n3 P3 h' ^
} i2 \( h$ J, e
2 E' O# p, x% G 我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?7 a3 j4 `$ W' M3 F
$ X- y7 s' O( P
. p; a5 f2 v2 H6 O) A
( B, s' ]- e% q$ W' [. w
|
|