|
# r. q s) M( C' N您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。6 x. Z9 W0 u( [
0 V5 \7 l7 p' M! J7 ^9 B- D# D我的qt程序如下:
3 p" d9 l4 A# z struct termios setting;
8 g# ]6 O* X$ t3 D" L fd = open("/dev/ttyS1", O_RDWR);
" }/ y$ X! O8 u1 S- o if (fd == -1) {
c1 V1 @. W4 z) N/ c! D LOG_INFO("open /dev/ttyS failure ...");
: p, M; _; i) { return ;
' i' N1 ^, p# W5 @$ \; a }
. s% b" x5 w/ L$ a8 D9 S( e LOG_INFO("open /dev/ttyS1 success ...");2 \: N# _. O+ E& i6 Z5 F
tcgetattr(fd, &setting);
7 _0 Y8 _$ l+ L: C, i' X speed_t speed;7 K1 y) d5 ^# H; J7 d
speed = btr;' A6 b7 `' h! y7 j: C5 ^3 X6 `
6 T d* I- c# R6 S! E3 v cfsetispeed(&setting, speed);
* a- W9 |0 h# y5 ~5 K5 _! c cfsetospeed(&setting, speed);; m/ J' V) m# Y z
cfmakeraw(&setting);
1 A: [; U5 ], C, m0 w7 w3 i setting .c_cflag |= CS8;3 U8 L/ a0 e8 E: r7 E
setting.c_cflag &= ~PARENB;2 q1 H& e4 f+ H' D
setting.c_iflag &= ~INPCK;
3 A% \7 Q: R) t$ h% J1 T setting.c_cflag &= ~CSTOPB;, ~ W* [( ^: X0 d3 M0 W; c
tcflush(fd, TCIFLUSH);
^" ^& I" [4 |+ H" U# X! R4 } setting.c_cc[VTIME] = 0;
* w5 Z+ P2 ]7 k# H% n setting.c_cc[VMIN] = 0;+ F& u% ~, J" c7 M/ S& w1 U
tcsetattr(fd, TCSANOW, &setting);
: y2 K; f/ m+ C. H& H# ^5 K8 b# G
0 _4 w9 Z+ A7 n' n9 e. O, @! g int ret;% i5 m0 }/ D% Q1 ]
char *buff = {"hello,485write ok"} ;6 E8 R B. ]* y( o1 }1 _9 |
ret = write(fd, buff, 17);4 W7 r- q/ \. u$ {
5 L3 L9 E+ J+ \; D: m0 A char buff1[256] ;; f( Y# }% J0 X' V: L/ \ w- @
while(1){1 { {( X, F+ e: }! b7 `
# C3 q' n+ p: N ret = read(fd, buff1, 255);3 D& u- @; b3 b
if(ret > 0){, V5 ?8 l# ~2 B' H, d5 A
+ \0 u: A8 Z/ S( I9 J, y
write(fd, buff1, 5);
9 j+ N& z. i; f, ?8 h4 j0 x( ?
/ ~: ?5 x/ K4 p7 E9 Q LOG_INFO("rs485 receiver ret = %d " , ret);
4 F: s0 s2 _3 S- ]
+ o; d1 q- E! q q6 g }3 P% D( E# @$ M9 K& j4 U
2 |' ~8 v) p [2 d
}
4 j" E+ u2 `$ z- I1 _1 S- ?( M: A
我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?$ r4 K# u* B$ [6 R; \' ]
& B9 Z# o/ h j x. [
1 Z' F/ H _$ p6 d
; S* G' N, Q2 u+ {" L
|
|