RS485问题 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

" X( u; l8 [0 |6 i  F1 ?5 u$ O您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。
: t$ \% u5 D! V3 R3 S- R; H! B

, ]; E+ b/ e$ G2 U$ Y! T" k9 X我的qt程序如下:
  j% ^# `( q- ]. I7 [   struct termios setting;0 K7 V# V/ z/ W" |, i0 |# R
    fd = open("/dev/ttyS1", O_RDWR);
1 l& d- ^9 i4 J2 a    if (fd == -1) {% x$ e) h) f$ r6 J$ y
        LOG_INFO("open /dev/ttyS  failure ...");( S( b+ J( p( V
        return ;: l* [% @: z; H- a3 g
    }7 }9 z* W& {( c6 k) w4 C1 Q
    LOG_INFO("open /dev/ttyS1  success ...");
" `) W* I4 H) C0 l% s    tcgetattr(fd, &setting);
, u* A4 C+ R; e+ Q& b, @    speed_t speed;4 C9 m, c  C( Z/ _0 k5 f4 w! ~: @3 u3 G
    speed = btr;# I" r0 F' b6 {3 I5 G3 n2 J5 z

2 S2 ?& Y2 d4 Q/ G    cfsetispeed(&setting, speed);
# K  V7 r+ v/ a( @) ?  j    cfsetospeed(&setting, speed);
7 E5 n" K# R- s+ ~    cfmakeraw(&setting);
4 }! }1 R8 E- O' u- Y    setting .c_cflag |= CS8;
6 _9 D" S/ M9 f% j, G; a: x; b( J$ w' D    setting.c_cflag &= ~PARENB;
: I$ J; Z6 V) P( R    setting.c_iflag &= ~INPCK;3 x# {3 n( ?* J+ v
    setting.c_cflag &= ~CSTOPB;7 d  I' X: x) F7 ]) m
    tcflush(fd, TCIFLUSH);" g/ N9 b/ n( d+ l3 [4 {
    setting.c_cc[VTIME] = 0;
! q0 b& M9 l1 v! R& n4 B. G    setting.c_cc[VMIN] = 0;
& I1 P- }. ?1 V  Z2 z/ e' f    tcsetattr(fd, TCSANOW, &setting);% I. Q6 x% j4 j7 W0 d/ I

: j* [3 D* [+ R( \    int ret;
1 _* ]  @; f4 Q. v0 ^    char *buff = {"hello,485write ok"} ;8 _6 J1 K. r! w( J- R& E9 w3 ~
    ret = write(fd, buff, 17);% T! l0 |  L9 A

+ z3 }* G  c* b5 |' U: W6 X    char buff1[256] ;
. Z. w; L' h8 J( ^$ d- w" a& Q    while(1){& x4 @! Z4 H3 h5 f2 d
+ S0 ^" n% |9 ^3 [, e! o
          ret = read(fd, buff1, 255);' D2 v# b! {# i: b; \$ [) b3 u
          if(ret > 0){
. E4 H2 H9 m/ _. n/ r  |' C6 y2 ?7 F- ^: y
                     write(fd, buff1, 5);5 d: K& M8 C4 ?$ `5 w! R
$ P& W) a2 a. D
                      LOG_INFO("rs485 receiver ret = %d " , ret);
/ W2 z/ \$ K# ]' C5 t0 P
- E1 z, \/ K+ w4 i          }  e* O+ p0 G, v0 W. D. L5 c
+ t3 U% B) ^  ^# `' B% O2 W4 K9 J
    }6 V% Z) }+ {$ ]% W
# ?% D) B5 U0 g- ~1 W+ D+ D/ f
   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?* i: g/ p3 L; X- B4 K* R- F

" p+ T# ^' H: m. M2 h4 U# z# X

  Q0 Z! K; F) Q& w' a( u" f& ]) V  @" i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-1-15 05:39 , Processed in 0.042693 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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