嵌入式开发者社区
标题:
RS485问题
[打印本页]
作者:
vtinf
时间:
2016-10-8 12:44
标题:
RS485问题
3 e" e: w l( E8 p& |) R* ^2 O
您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现
开发板485口能发数据,但是不能接收数据。
6 p8 o, j! e' w" L+ r7 B, [
0 R% a" Z4 [; M6 ~2 Y, n
我的qt程序如下:
" [0 `! |1 Q6 z0 J6 a
struct termios setting;
0 p/ U. U5 x" Y
fd = open("/dev/ttyS1", O_RDWR);
! V4 c( a8 Y+ R! B' M$ ?4 _
if (fd == -1) {
. t* y/ W' }; Q$ D% y4 T8 W9 T
LOG_INFO("open /dev/ttyS failure ...");
3 k N* J% h* v2 E) ~/ r
return ;
2 I# W" q0 V0 x" ]; p* X& u5 c
}
/ _2 i# m4 d b- n( Y
LOG_INFO("open /dev/ttyS1 success ...");
4 N9 i, z/ t2 Z( x
tcgetattr(fd, &setting);
) t" o2 b* l$ W( _
speed_t speed;
' y' |: t w( `, z/ N h! f$ _
speed = btr;
: j ^1 t$ _9 h! L
3 V0 `9 _; j2 m1 I& U" y# {2 A
cfsetispeed(&setting, speed);
0 V ?% _! P# i3 W: ]. x8 v
cfsetospeed(&setting, speed);
% @% ~. C* b" M$ l5 i
cfmakeraw(&setting);
1 j0 I1 |; _, ?" i7 E" d
setting .c_cflag |= CS8;
3 m5 N: f1 E3 u5 G. ?! w
setting.c_cflag &= ~PARENB;
3 f; H0 ~' i; x% e
setting.c_iflag &= ~INPCK;
3 C3 E u! G1 y" d0 D
setting.c_cflag &= ~CSTOPB;
4 Y& u8 k/ h+ [
tcflush(fd, TCIFLUSH);
. c% |5 m+ H, V6 Z
setting.c_cc[VTIME] = 0;
7 i) ^) n' {) u5 ]
setting.c_cc[VMIN] = 0;
) f+ \8 s7 {# w( h2 q! ~# I
tcsetattr(fd, TCSANOW, &setting);
8 r0 x x6 m' Q$ c6 b8 Z
. d" m6 S8 f7 [) \# }
int ret;
$ B. X4 T0 y, O2 l: h% ~
char *buff = {"hello,485write ok"} ;
; b! G4 t. |0 {% ]5 Z U% V
ret = write(fd, buff, 17);
" L* A4 s$ F$ U1 u# Q! X
. `0 e) b Y! z5 k1 D
char buff1[256] ;
6 T+ e$ n: N" e1 |: s" g
while(1){
3 Q# O. Z: X& J
# o5 ?; z7 U# X: V6 w; i
ret = read(fd, buff1, 255);
% m- P! w, W. v6 t; K
if(ret > 0){
9 P8 p. _9 y; T% |
* X* x, A1 J8 m
write(fd, buff1, 5);
/ Z& [5 s% {0 V5 z
5 c: k: _% ~! Q( b" |. c
LOG_INFO("rs485 receiver ret = %d " , ret);
2 J6 F3 ]+ _3 w+ a8 |
3 Q/ U4 a4 A( g# A& l! _: L% ^
}
1 |, \' Y+ h1 N" Z# p
' q$ j7 X3 y$ t! L6 _1 o: ^
}
* [; i+ u6 K3 Q, U
# y5 a) h9 U: ~
我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
S+ X7 o) ?' Q" X3 D
5 q6 Q6 [3 i: \. C1 `# I7 M
0 n# l* N6 C/ K8 ?" n9 U
# N5 _5 g; `% w/ z6 V+ Z. f
作者:
tenny
时间:
2016-10-8 13:21
串口助手发够255个字节了吗?
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4