|
$ j3 G( x/ i& K9 a+ x7 S# t- B您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。8 E; N8 v( h7 x8 T2 k
: C: P: @4 ^- M0 a4 D( g我的qt程序如下:0 s( E8 H# p9 J5 J" l5 w1 {5 ~
struct termios setting;
& n7 z+ Z) O3 N6 n* s1 E fd = open("/dev/ttyS1", O_RDWR);/ G* q0 T" z6 v
if (fd == -1) {
( c0 K6 j4 f0 r LOG_INFO("open /dev/ttyS failure ...");
3 c1 y$ [0 p1 {, A: ~3 v- E4 V return ;6 Z3 C; l* @- G' E& A% ~
}
% K2 c& ^8 a9 X+ j6 A LOG_INFO("open /dev/ttyS1 success ...");9 q9 H9 U4 o- c- z+ h0 |! \, W
tcgetattr(fd, &setting);3 {) k3 \7 \9 T V( v( S1 |
speed_t speed;
1 ^9 Q* z- w4 [; G$ [+ T speed = btr;* Z3 c/ T7 X/ r% b8 ^
; }6 G7 T3 N7 A( r1 V
cfsetispeed(&setting, speed);: `* ^4 f2 O# O4 t0 k9 T+ @
cfsetospeed(&setting, speed);
5 F# N( e. \# X4 |, H k$ }! w cfmakeraw(&setting);
1 t, j' u) u! ?* {6 m setting .c_cflag |= CS8;. m; W% g4 Z/ J
setting.c_cflag &= ~PARENB;
. G) r+ _$ i# G5 ]- V9 P! z setting.c_iflag &= ~INPCK;
5 {5 i$ P# @9 B' ?- Q* N2 X [ setting.c_cflag &= ~CSTOPB;2 S8 w$ ?; R" Q6 n D
tcflush(fd, TCIFLUSH);5 @ Q$ I! f3 r5 `% a
setting.c_cc[VTIME] = 0;: k+ O8 T9 d- \8 {
setting.c_cc[VMIN] = 0;
6 `, D3 ~# a6 s$ m+ b, x4 n tcsetattr(fd, TCSANOW, &setting);/ L# o* z* `: v! ~: O
M0 x [7 L& J5 O z int ret;
2 |- D1 T% D6 G4 C char *buff = {"hello,485write ok"} ; m) E6 Z( ?) A! Y! O9 u
ret = write(fd, buff, 17);
# n; ^1 Y9 t0 q$ k3 W0 n, q+ U6 u" z c$ b6 z
char buff1[256] ;
- O% d. r; F$ r0 r# p& s0 |& _ while(1){
0 N5 s( @% E) y1 k" A$ v( d2 z L: [" T& Y( I: N$ }
ret = read(fd, buff1, 255);) b) `# I. @: e$ T; [
if(ret > 0){
1 k5 R$ \: H) U! [
# A* c7 w# U$ P- v3 W. ? write(fd, buff1, 5);, N) }3 T3 n7 X0 P
; a! t$ p) G1 k: q( t S LOG_INFO("rs485 receiver ret = %d " , ret);3 B+ p6 w; _/ W- Q, l
- a: c# ~9 {5 W4 ?5 `' L }9 {( k% t5 ~" V1 X, i
$ c* d: L3 t6 J2 D/ q# o
}
+ o( _0 W$ o6 n, p s- y
& U3 I- E0 j1 s" \6 `" _. v4 z0 w+ ] 我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
# O V# [3 Y+ D7 z. ?* d( X7 K) n& X. R( i0 l* I! C3 e# l
) O: f! o _, U9 d+ W3 y/ M$ y( h! w$ h% [
|
|