|
9 O1 r1 r7 v+ Q2 d; D您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。# i: [* Q' C3 t u
' _0 r0 Y; @' K$ M5 l) I我的qt程序如下:
% f; W. z# K5 ^5 u2 }% p7 U9 _ struct termios setting;
& W' z) |4 S% O9 G fd = open("/dev/ttyS1", O_RDWR);3 N( u! Y' N1 W6 Q/ n! K1 v
if (fd == -1) {+ _5 H/ i+ I$ i, ?8 A' @
LOG_INFO("open /dev/ttyS failure ...");8 N1 K& L; _ b! V4 r" U5 }) b
return ;
4 d. r4 c- m& V: n& A6 s$ e }* B( O* w* ^7 a3 Y/ o
LOG_INFO("open /dev/ttyS1 success ...");: e1 F# x S# o( |5 r8 e9 a
tcgetattr(fd, &setting);- P9 P& e: w$ P6 I' T# g. C$ q" B% I
speed_t speed;; F1 ~8 Y0 g/ n& h+ [
speed = btr;
5 ~; Q5 ]2 N; X7 c$ s) Z. v
" @$ i5 h+ X5 ? cfsetispeed(&setting, speed);5 w+ Z0 y1 _# `
cfsetospeed(&setting, speed);
9 A& N7 {, X9 V" Z! h5 N) ~& [ cfmakeraw(&setting);$ M7 N( J# r9 {2 d% ?, }7 [
setting .c_cflag |= CS8;
% b! I9 g$ K% v( B [5 Y5 U setting.c_cflag &= ~PARENB;
# w2 }9 Y* d* e x4 ~0 X: M setting.c_iflag &= ~INPCK;
- l/ u( J" l7 C( x7 T1 @5 }2 a setting.c_cflag &= ~CSTOPB;6 l8 a! p% c4 V
tcflush(fd, TCIFLUSH);
S% r" c4 N; J6 i! B7 e& ` setting.c_cc[VTIME] = 0;
+ R, X" ^& b% N setting.c_cc[VMIN] = 0;* p C _, I0 D# X& d
tcsetattr(fd, TCSANOW, &setting);' Q* j# I' _9 Z/ f% I1 s" y6 P; _2 c8 h
9 P$ y: Q, q* u: g: I8 M" N int ret;
: ?4 m7 A7 n w/ C+ d, E char *buff = {"hello,485write ok"} ; o& W- a& {% D5 N) u# }
ret = write(fd, buff, 17);
2 }1 w) [2 `( q: \# I; |8 C2 D+ M5 R+ R$ Y( Q9 X
char buff1[256] ;- Z `) M* l) l$ A# T
while(1){ q8 ?7 x( b0 w7 g1 Q
1 `7 `' [, l1 h. Z" p
ret = read(fd, buff1, 255);
# j0 y* q. M: F if(ret > 0){
; q, M" T7 D- E; `- w, f2 A
4 ^ L% V' z' m- v4 {4 Q5 H write(fd, buff1, 5);; u) e/ q% O) v1 W% P
! P* ]1 Z! ~( v. I' A
LOG_INFO("rs485 receiver ret = %d " , ret);: X k- v+ X8 H6 ]% e) q/ B
; g8 D4 R7 [+ g4 Q' U( w% Z9 a }% O: `6 D/ [4 V1 c
/ C& d2 ]4 ]4 }6 p! G" y3 C- r }
- G5 _7 L: U- B4 m0 o, p
# h2 s9 R) Y% X; e 我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?8 i2 Z) [3 B. D: I( I2 k( H
% S: L: F& ~4 f! k2 S9 G- g" n9 m x w6 Q+ g' b: r
& y4 G" ?/ h3 |, u) e3 m P |
|