嵌入式开发者社区
标题:
RS485问题
[打印本页]
作者:
vtinf
时间:
2016-10-8 12:44
标题:
RS485问题
& o* F5 O$ O% V3 N: V
您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现
开发板485口能发数据,但是不能接收数据。
( d/ Y% [& z7 {; a K
) `3 h1 h7 a. {1 r7 }9 w
我的qt程序如下:
8 j5 L) ^- u0 k9 [6 \3 k
struct termios setting;
' j9 @/ b6 O; R, ?& H, n
fd = open("/dev/ttyS1", O_RDWR);
. [. ?/ y' D7 ]5 l9 |! B5 j
if (fd == -1) {
% ?: I* o' T9 a: d' R
LOG_INFO("open /dev/ttyS failure ...");
- n. _" I, O9 j/ e
return ;
: P7 L1 ?8 Z A* e6 u8 F3 h2 ?+ Y
}
- a) I ^- H+ Y* P
LOG_INFO("open /dev/ttyS1 success ...");
, o* v9 f; s/ s6 N
tcgetattr(fd, &setting);
' { p# x7 s \" u$ J) S' O
speed_t speed;
; X; ?( D+ l. k
speed = btr;
) G Y9 r/ K7 Q% I7 Y
* i0 u/ x$ d" E8 ^5 k3 ?
cfsetispeed(&setting, speed);
1 ^4 [* K g/ A! x L
cfsetospeed(&setting, speed);
9 t6 @$ ~, B* v1 \
cfmakeraw(&setting);
2 H! v& h3 }! m0 r1 o6 K: E
setting .c_cflag |= CS8;
* c& G" Z9 n) n' M) a8 _. j, \
setting.c_cflag &= ~PARENB;
$ h. F$ X% F# S' @$ o
setting.c_iflag &= ~INPCK;
7 y( p+ C, [) ?! w
setting.c_cflag &= ~CSTOPB;
* j8 o: t' } d, ?6 f
tcflush(fd, TCIFLUSH);
1 M' S2 ?: t0 D5 q: W' T
setting.c_cc[VTIME] = 0;
/ w0 g' v) T3 R$ b# J. d- R0 ~
setting.c_cc[VMIN] = 0;
" `, b4 e, ^0 j) ^$ x: M
tcsetattr(fd, TCSANOW, &setting);
" ^: {5 ^+ X3 ]6 G1 O( K
* x, W4 M5 y3 ~" O
int ret;
3 x3 w" E' {/ U, _6 @8 r& {4 g
char *buff = {"hello,485write ok"} ;
0 Z2 y+ M9 _' K2 ~0 c
ret = write(fd, buff, 17);
0 }! L5 q8 s3 [( ]' z
7 T* K; J# k6 s
char buff1[256] ;
& S. P, A% D. T8 P3 u$ z
while(1){
9 g# s! g) l1 N) B1 D
4 p/ A# g* y6 ^' _* u2 D5 s, e
ret = read(fd, buff1, 255);
7 |7 J i( ?* G
if(ret > 0){
* j+ X) o4 ^* m
* D# v' a! f+ [ a
write(fd, buff1, 5);
0 z2 N1 m+ h6 b; J
2 P1 f% G q* v! J2 `
LOG_INFO("rs485 receiver ret = %d " , ret);
; d$ W2 u- X# W ?4 q! c
. a& y4 }7 M1 K+ {/ p9 H
}
9 e" D2 ^# O8 y- V1 S; G
0 r* J! `9 g6 i( _
}
7 V9 H1 N4 H# z/ O
4 P/ E5 B& {) ^& r$ H" L+ I
我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
9 a$ u% V9 V, e3 c! K, h8 \# I5 Q
+ [: `. h W( }6 |0 S& `: q* |
) S8 f3 V: ^3 w2 }) `
$ m& x' u$ v+ w
作者:
tenny
时间:
2016-10-8 13:21
串口助手发够255个字节了吗?
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4