|
4 k7 b4 s* d% e% t: `您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。$ E& n% B8 _2 }- o; \8 w
% m+ b+ h( u* b3 @
我的qt程序如下:0 F3 \* G+ [0 s% z
struct termios setting;
7 m2 \0 I n! x$ r fd = open("/dev/ttyS1", O_RDWR);% S, c7 x( g0 m+ j/ O+ g, e+ R7 v
if (fd == -1) {
+ T- v8 p! j( \' A4 q$ X* ]( E LOG_INFO("open /dev/ttyS failure ...");/ Z8 @! u4 {5 B- a& Q2 M' G
return ;- I$ ]+ i2 [; w: G% d) q* w
}( h. b- K' `6 X4 Z. i& t4 [
LOG_INFO("open /dev/ttyS1 success ...");. F$ ^4 S Y; |" [( k
tcgetattr(fd, &setting);0 ` U9 k2 i2 `# s/ V- K8 `6 \7 t9 T
speed_t speed; T) a+ M9 G( f( j5 G( }/ y9 l5 ~; P
speed = btr;
$ m7 t) W+ G0 m/ L/ m! @" E8 M. m3 _3 t* E! w% c9 N
cfsetispeed(&setting, speed);' _. V& }- z4 s
cfsetospeed(&setting, speed);6 X' Z" y. @: t
cfmakeraw(&setting);$ g4 G4 v% ]# a- K; H9 A5 z
setting .c_cflag |= CS8;7 n& Q5 g+ f$ ]1 h. A# h
setting.c_cflag &= ~PARENB; ?0 g# I9 y4 K/ w7 x
setting.c_iflag &= ~INPCK;) w6 B2 Z) ?# \, ]3 a% a
setting.c_cflag &= ~CSTOPB;
8 c1 ~' ?0 C# Y" \+ x: m$ G! J tcflush(fd, TCIFLUSH);+ P! M3 v5 c3 }) X& z
setting.c_cc[VTIME] = 0;
- H: k5 R1 Q% k setting.c_cc[VMIN] = 0;
7 t$ n7 X, l+ M2 m/ _ tcsetattr(fd, TCSANOW, &setting);! m M' S* M, R; C& v
! k6 U$ _* W' X- F0 c- } int ret;% g0 p* B7 p4 o! A
char *buff = {"hello,485write ok"} ;
% T3 f/ y2 x6 ^0 V) _; H ret = write(fd, buff, 17);
, K8 ~2 \. A0 U ~
8 S& W' t6 V. r# R5 Y0 q- Y, g5 L char buff1[256] ;
7 ?, r: Z& i' U9 D: @/ @/ v: v while(1){
0 c' t5 H ~% S8 i" f0 \. l/ k4 [8 L9 | y4 F
ret = read(fd, buff1, 255);
) m. k; z% r% J# z' X+ T. W/ M9 } if(ret > 0){
/ B& T F/ s- B+ |: z1 W1 g
6 H2 z/ U( M6 Q6 H' Y# f# v write(fd, buff1, 5);
D g9 f/ O6 m2 h# x# X+ j1 _( M8 \# n L- R* W/ m5 D
LOG_INFO("rs485 receiver ret = %d " , ret);* {. y- b( b0 T a# J' Z G
3 ^9 K! U& `/ o) X }
$ ]) G; k; v- M1 J
% G3 I/ U7 k3 H' a }0 f, A* t% {' E& T7 v
9 ~* q, x- X+ g" `
我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?6 z5 m" D7 E: d0 D+ R
$ S+ ]( t% z2 e8 u( D5 y: j' _! `
- B& v, A9 V- ^) e
+ L2 j# h8 e8 j; G
|
|