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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

# e6 T; O/ v9 s, T您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。3 L* K" g$ n3 E/ Z/ p, g: G7 a) Z
" g+ N4 o3 c+ ]- t5 Q+ i
我的qt程序如下:
7 Z6 M: U8 F2 b- W; J   struct termios setting;: q2 H! [3 O$ [6 j( }1 u
    fd = open("/dev/ttyS1", O_RDWR);
) D; m. F  ]+ z- R1 u5 G    if (fd == -1) {' q- G; J* a9 H0 j1 e% E
        LOG_INFO("open /dev/ttyS  failure ...");) L/ r3 a& p# \: C$ ~: l
        return ;+ O3 Y% v& R: ?& H9 c& ^+ @9 C/ [
    }
1 `2 Y% q& V6 k9 S4 R0 m    LOG_INFO("open /dev/ttyS1  success ...");* E4 ~  x* S+ C) G7 R  l0 W/ a  @
    tcgetattr(fd, &setting);
: ^! y) l" ^0 M  }$ j) o2 L    speed_t speed;
9 a& F& h0 h; n  B" x& T% p    speed = btr;
2 l2 Y) U# f8 g2 {7 ^6 }/ v- x  Q+ ~' H7 l* U# e5 m6 C
    cfsetispeed(&setting, speed);2 l; F* v4 y8 x9 g
    cfsetospeed(&setting, speed);
! M* ^- n# W, p    cfmakeraw(&setting);- k: m6 L% |; m) u
    setting .c_cflag |= CS8;& d+ E* O8 ]- i, j) F1 D( e
    setting.c_cflag &= ~PARENB;
# K1 t6 b" ^' ~3 W+ L+ y+ p    setting.c_iflag &= ~INPCK;
+ O2 b3 p6 D( \$ q# M    setting.c_cflag &= ~CSTOPB;
1 N) @- l0 m9 P8 C2 ]. A    tcflush(fd, TCIFLUSH);+ c/ n( Q$ A: H7 d5 C; c0 t
    setting.c_cc[VTIME] = 0;$ i0 I& U9 P+ y( Y- o/ e/ O2 {6 G4 r! O
    setting.c_cc[VMIN] = 0;; r% v2 @% t, a8 n+ I. C% E
    tcsetattr(fd, TCSANOW, &setting);! l: B! x$ Y# T5 `

; r) B6 A4 r, O" R& |3 b$ r2 p* g+ y    int ret;3 A( {% u. h  j9 ^1 h. ?
    char *buff = {"hello,485write ok"} ;
# }: y, h7 R/ P$ ^8 r2 i& e    ret = write(fd, buff, 17);
) z/ \" O/ L8 K
  [+ U7 x, [# V    char buff1[256] ;
) `& q& v% m  l' ]& k+ e  t    while(1){3 |- ]% M2 v( M
: E2 Q' O9 s) J
          ret = read(fd, buff1, 255);8 F6 v) [5 ~! _7 p0 ?$ T
          if(ret > 0){9 z) Y0 d1 Q0 ?9 d8 Q4 g, O

- `* P; ]1 J* U4 S9 e7 A                     write(fd, buff1, 5);
' j6 p' W& f6 }, X
  p5 U# }. S9 @/ |8 l2 |, f# i- n! o                      LOG_INFO("rs485 receiver ret = %d " , ret);
; V  I) x$ X' {' K: C! u: v, N  ^) q! T
          }7 q5 w2 K7 T3 l4 C8 n8 |2 p: l+ E! A
5 i6 G( v' L* N  s2 u' P
    }/ \4 P9 o7 ^8 x& U9 k" _

" t3 Z% s6 s8 e  [" o6 R, r   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?/ e/ ^& p5 h4 z" t
7 {) S4 p6 ?* m7 s9 x0 H- j1 ]3 A; g
4 S' ~5 k; f: Q  M

1 q6 y5 ?! J3 a; ?% V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-16 11:02 , Processed in 0.037068 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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