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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

% G! J' U6 R; ^# m0 b您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。: T1 v  A$ M4 ~% A. I
- d# \6 W8 L7 y" \8 I2 N# @
我的qt程序如下:+ D) J. G& I7 W7 R5 \- b+ e
   struct termios setting;
8 l- H7 e( J5 n( C    fd = open("/dev/ttyS1", O_RDWR);
% m: K8 t8 u& r6 G& E( L    if (fd == -1) {; f. U' [0 U) d( V/ e
        LOG_INFO("open /dev/ttyS  failure ...");4 c, b* S" ?7 C& G
        return ;  T* _7 r: o1 _% G
    }
8 ^8 `) L/ |" R' C+ s) v7 {, l# U    LOG_INFO("open /dev/ttyS1  success ...");) `/ e3 k1 O) N
    tcgetattr(fd, &setting);3 \7 o$ f2 E2 X% U* I2 s
    speed_t speed;9 b/ [- K# Q6 j0 Y, ?$ }
    speed = btr;
4 d3 G7 W- I# {* p- V
" a# o( z  F0 G  A  s    cfsetispeed(&setting, speed);
6 v7 {. |, D" Q* X    cfsetospeed(&setting, speed);
6 F3 r7 P4 O- z: K  l    cfmakeraw(&setting);
/ q' H1 A% p+ Y: |    setting .c_cflag |= CS8;
' l$ S* M  |! J0 ^  i7 Q2 l    setting.c_cflag &= ~PARENB;
5 }- m$ a8 S  J; T( W% q    setting.c_iflag &= ~INPCK;
# Y8 P" x$ ?& M    setting.c_cflag &= ~CSTOPB;- Y: g& V& j" t6 B3 |$ S5 [
    tcflush(fd, TCIFLUSH);
% Z) w" `$ l1 i- }& K( X    setting.c_cc[VTIME] = 0;% w$ ^- \' Y$ Q3 p, x
    setting.c_cc[VMIN] = 0;1 N* k& V2 C( l4 ?) S/ i
    tcsetattr(fd, TCSANOW, &setting);
  }# M$ U) k5 O
! s/ I# a  a# ]    int ret;) P+ |' A: V3 H& p, H& r: N1 J3 p' _/ z
    char *buff = {"hello,485write ok"} ;
, K5 v1 F) m1 F( K+ }/ q    ret = write(fd, buff, 17);. a* }* ?! g' e) F5 m/ \) T8 j2 N
4 j0 l" k+ w& W! w2 k6 y0 ]! h
    char buff1[256] ;. [. b* E0 n' ~$ Z
    while(1){
' \* k. q6 \8 `8 a
6 h0 D) X. @# R4 {( ~          ret = read(fd, buff1, 255);
( W: y; P: H9 ?, M+ m          if(ret > 0){
9 e  M$ X0 {2 [3 u
% I) K: I: x# ^, e1 s. H: G% j                     write(fd, buff1, 5);- }" B3 d% b! G, z/ J8 N
: n% Z$ _- `' j) {$ U) ]
                      LOG_INFO("rs485 receiver ret = %d " , ret);
: i4 F. C7 R1 g1 S4 g2 }6 \2 j
          }
- P& D; \- e6 x# d
8 v6 R' P2 L0 T% K: \# d2 Q# Q$ `    }2 f& a3 d4 y4 M* i

) B# d  U) ?1 q3 U( B/ S, E   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?2 o3 p8 w2 g/ H% ]- l. p3 ^

6 r4 d7 D4 w3 ~2 R* P+ j
/ @# @( n, a! u! P" b+ J5 u
6 O9 y' V+ X, F( S; l$ E5 ?8 k8 d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-1 19:57 , Processed in 0.035975 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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