嵌入式开发者社区
标题:
RS485问题
[打印本页]
作者:
vtinf
时间:
2016-10-8 12:44
标题:
RS485问题
8 H1 Q: T" J N
您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现
开发板485口能发数据,但是不能接收数据。
1 Z: ]+ n/ A# L( O6 S( k
, j- ?* @) g9 t* }: G5 \. o
我的qt程序如下:
2 P% Q$ p% t& n7 N0 j3 w( o
struct termios setting;
" H9 |. A9 ?% e# w( V9 e0 }9 X. _6 l
fd = open("/dev/ttyS1", O_RDWR);
0 y _* i: s4 t% Y
if (fd == -1) {
6 F, t3 C1 n) _! `. T+ t# i" ~
LOG_INFO("open /dev/ttyS failure ...");
- |3 m. u9 q! z& f
return ;
3 E! I- w* M) w {5 |
}
0 {) b3 t! f8 G0 V! ~ ] n
LOG_INFO("open /dev/ttyS1 success ...");
_( P6 a! W) U+ p% W
tcgetattr(fd, &setting);
3 B* P7 C4 }2 d) b: U( W, X, M
speed_t speed;
# ?# g' }1 i3 F2 h3 r) z* z
speed = btr;
% ^- R& w* b& t3 K
8 v+ _$ \* G$ t, W+ s4 p
cfsetispeed(&setting, speed);
' i- z+ A6 L4 N9 e! V- i V" T
cfsetospeed(&setting, speed);
, R" d4 s6 d5 A7 c
cfmakeraw(&setting);
|' u0 a) a% G1 t) k8 B6 I3 f ^
setting .c_cflag |= CS8;
/ b/ y+ j1 v$ L
setting.c_cflag &= ~PARENB;
' ~" |9 r1 H( Z
setting.c_iflag &= ~INPCK;
6 C7 | u" ~( a- b
setting.c_cflag &= ~CSTOPB;
* F- R& ]+ Q- v5 e6 Y& S
tcflush(fd, TCIFLUSH);
! j# T M+ w& v. F
setting.c_cc[VTIME] = 0;
9 V5 g# k2 G. D% d0 F- C
setting.c_cc[VMIN] = 0;
g' u& C3 x, t$ f' A2 A
tcsetattr(fd, TCSANOW, &setting);
3 {) \6 f3 v# I B% d
# {( o8 ^5 b4 u0 q5 `+ a8 V
int ret;
7 `7 t& z- } j8 D6 W/ A2 V
char *buff = {"hello,485write ok"} ;
6 e- d7 I8 p5 L! L6 r V' V
ret = write(fd, buff, 17);
5 \- A# ], O3 [- Q
) I6 Y% s! z4 ?9 y8 y
char buff1[256] ;
K' {5 o ?/ R% W2 r/ ?
while(1){
% @0 L; }) ?% F
6 Y$ f% K& b" j# H, D; {; f) ^5 p
ret = read(fd, buff1, 255);
1 c/ N/ M6 S8 j$ n
if(ret > 0){
) J+ m: A2 J( P$ b( ]
! m: }3 @& C: s$ M. c! K
write(fd, buff1, 5);
% P, }4 G% L1 \' ^& t
" D# h) Z( Y, F# I& L
LOG_INFO("rs485 receiver ret = %d " , ret);
( U8 W. O% B& q% Q3 @5 w, w2 F
8 T; l$ H3 x7 c0 S/ S& a
}
6 W4 _0 P% `9 e, h% V% n+ R+ O1 f) v
/ y- g% X b/ S% X0 N# T/ c/ N
}
! Z% R5 _5 H7 L
+ q( Y5 E* n3 ~- T
我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
9 M6 x: `& m& ?0 D1 L5 q/ l/ V
+ K. l/ A i+ C$ h6 _, V
7 X! P$ q+ _$ q6 o! h
5 {% r6 n1 f. s8 }% p
作者:
tenny
时间:
2016-10-8 13:21
串口助手发够255个字节了吗?
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4