嵌入式开发者社区
标题:
RS485问题
[打印本页]
作者:
vtinf
时间:
2016-10-8 12:44
标题:
RS485问题
- x* r a6 z! b. D. S$ g
您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现
开发板485口能发数据,但是不能接收数据。
7 b5 w9 `; f' [0 Q* w" @1 N
# K6 H& R$ \0 P) I X+ ^
我的qt程序如下:
) {- b+ u! M% A h' Z, g& c) z) A
struct termios setting;
, b" f k9 V: e% @1 ]6 B
fd = open("/dev/ttyS1", O_RDWR);
. ]/ Z `1 p+ c. Z# z( ~
if (fd == -1) {
s: }3 ]5 e' n
LOG_INFO("open /dev/ttyS failure ...");
# ~9 h H0 o8 p I, k5 P8 }0 |
return ;
0 Z% w% e, J& y
}
% H) ^/ G8 M/ f! c% b0 f
LOG_INFO("open /dev/ttyS1 success ...");
! }3 }8 U2 p% J5 K
tcgetattr(fd, &setting);
/ |/ w6 m+ {+ r+ J" D3 e
speed_t speed;
( x* s' R7 y2 M$ H. B( C
speed = btr;
9 w2 Q- p/ c6 Y8 }' |0 Z1 ^6 g' y
: k f/ Z/ Z1 E# @: j
cfsetispeed(&setting, speed);
5 b% `: o( \( H7 c/ A8 B- P# m
cfsetospeed(&setting, speed);
* M; {5 x) T- j R0 _2 x
cfmakeraw(&setting);
7 ?9 v% {: j7 }% U5 f/ H& g E& R
setting .c_cflag |= CS8;
: m" L6 o8 P+ _$ ^0 I( R, h
setting.c_cflag &= ~PARENB;
' T! n: k- w2 L; M0 t( Z
setting.c_iflag &= ~INPCK;
3 b3 J* F0 x# e9 C! I
setting.c_cflag &= ~CSTOPB;
5 v# }4 T& q# u* t
tcflush(fd, TCIFLUSH);
; s! n2 J! {! H m( O# q- H& ^
setting.c_cc[VTIME] = 0;
3 U7 n; \9 d4 a- U* M2 C
setting.c_cc[VMIN] = 0;
" n. |# {1 J( I: C$ w# ^; U! n- m! m
tcsetattr(fd, TCSANOW, &setting);
& |) J$ V. `9 m2 _
( O$ I; U- B% M5 @$ U$ C0 ~ G
int ret;
L$ D" q( l4 f( f5 q5 x
char *buff = {"hello,485write ok"} ;
; W& C7 _6 f3 }3 g0 z( H' w% n
ret = write(fd, buff, 17);
6 o1 H! b- {, D+ N4 X& r6 a- S
0 ]+ u: s" D6 i- a/ _
char buff1[256] ;
: d8 G& g# d" ]0 ?/ b1 z
while(1){
" o. T2 [$ D) ~% Z7 H t
8 J/ @0 G; K/ m3 s: S
ret = read(fd, buff1, 255);
8 Q5 v( u' n; N6 E: \ j
if(ret > 0){
" V, o8 u" v* f" ^4 s5 J
# A) h: x9 w7 _% n0 _
write(fd, buff1, 5);
4 c3 X: ~1 e- z0 e
% ?6 C5 m( w8 Q
LOG_INFO("rs485 receiver ret = %d " , ret);
! G) a& |; Z5 ?! Y4 \
; ^* L2 q' f& y4 f$ P5 m
}
& Z# S: k+ @9 ~2 y
/ S& B8 C% K5 P! k+ m
}
3 F2 `" ^" N$ S% W. D& @1 p
3 A1 Z2 @7 p8 {& Y. S
我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
2 K4 h: b5 O6 K9 A9 M" D
% O, V/ T& C6 Y
0 r3 v8 s9 j/ B h7 K( L; l
& J7 h; Z4 @& z, w- {
作者:
tenny
时间:
2016-10-8 13:21
串口助手发够255个字节了吗?
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4