RS485问题 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3694|回复: 1
打印 上一主题 下一主题

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

积分
1263
跳转到指定楼层
楼主
发表于 2016-10-8 12:44:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

8 f9 p4 H; [4 X8 V  h2 r3 ]3 n: S您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。  {1 y( _8 ~* R" g9 g4 M
- I7 f6 @! n! \
我的qt程序如下:
+ J8 O7 Q$ `$ i  v( q   struct termios setting;+ w( d. B. K1 i4 a/ I8 }
    fd = open("/dev/ttyS1", O_RDWR);
' \( {( b% |) h: A* c; l! j  g    if (fd == -1) {
: h; `) j( N  N        LOG_INFO("open /dev/ttyS  failure ...");
5 C5 Q# a: K# j" U        return ;  g- |  t2 w# J  {9 B! E
    }
; U6 Y2 V2 G6 o2 o: p/ ]$ s    LOG_INFO("open /dev/ttyS1  success ...");( N2 }5 F( ~" z; D2 s
    tcgetattr(fd, &setting);$ _7 `* ~# a: v: `
    speed_t speed;
# ~8 ~5 u$ S6 m' C. v5 H  [* @    speed = btr;
/ @2 g5 @% b; k6 A7 H
+ K0 a- h, S( q/ N5 u9 p7 G5 R    cfsetispeed(&setting, speed);: K4 B, O) b( D: r" G9 ]
    cfsetospeed(&setting, speed);
+ H5 F& Y! {0 H, ?" }, G* Y/ \$ X' m    cfmakeraw(&setting);
+ \& A+ O0 ~! M0 r$ \    setting .c_cflag |= CS8;
$ R4 E5 E6 `9 G    setting.c_cflag &= ~PARENB;  N8 c+ D: A# |
    setting.c_iflag &= ~INPCK;
" c9 D; F/ f/ C. {4 w    setting.c_cflag &= ~CSTOPB;
3 c3 A& v3 X4 I3 A- e, z7 B3 ^    tcflush(fd, TCIFLUSH);9 @6 X4 C  Z/ t
    setting.c_cc[VTIME] = 0;2 Z* k' K4 R' ^7 Q& u, d/ s% Q4 c. k
    setting.c_cc[VMIN] = 0;# M. i+ f% v- r* b0 w$ R
    tcsetattr(fd, TCSANOW, &setting);/ y" E! {+ K, J5 k

/ [6 `  {2 a5 ?& [& M    int ret;
2 r! L- k6 v2 A" _( J    char *buff = {"hello,485write ok"} ;; t, j$ y# o6 Y: Y) w6 d4 O
    ret = write(fd, buff, 17);
, q$ T7 u3 O4 e+ f. C: {  D; R5 D2 X' J6 t7 d7 u/ g
    char buff1[256] ;: a7 m( s6 y; |( V6 J$ g
    while(1){/ |2 ?5 M, t0 \2 g1 ~2 X" U
( W; ^! a2 t, F: @5 H  Z3 C
          ret = read(fd, buff1, 255);
8 @" O" A2 Q8 H2 s' ^2 h3 D/ g          if(ret > 0){
) ?! f# K3 y$ k! q- D, D+ B5 c2 |7 J6 k7 Q. V, y0 o7 c
                     write(fd, buff1, 5);
0 P7 r) W: [/ M7 F4 F/ X" h: p
" M4 X; s- c+ y% U; j                      LOG_INFO("rs485 receiver ret = %d " , ret);
. O: F5 t2 p2 M, s, a  X7 ]- C( B- D2 d' y1 z5 s( j
          }
3 q5 E! `# b" t% P, t7 o$ t: }4 W$ A9 u# U( A2 h
    }
3 m/ v: C& E( N( n* X) h
# O" b( o1 ^7 {) t1 ?: `   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?: O- W) q( [9 i
( C$ O. ], {" Q, J4 i: H
" c& s+ z1 A5 ]
! v5 K, \4 E' @0 t" X# _' ?& s2 e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
沙发
发表于 2016-10-8 13:21:40 | 只看该作者
串口助手发够255个字节了吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-10-16 14:48 , Processed in 0.036276 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表