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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

积分
1263
跳转到指定楼层
楼主
发表于 2016-10-8 12:44:04 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

$ L0 `1 G9 F& h9 w3 e# [您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。
) \/ A# g+ e# a- \( y( V
+ L" e8 y6 J- R( ]/ \
我的qt程序如下:
: a% K3 p0 c& ]6 @3 D   struct termios setting;
' T5 f( C$ G0 I- F    fd = open("/dev/ttyS1", O_RDWR);6 n  r$ m4 G  l4 p6 L0 d; I# _
    if (fd == -1) {  s, C, w  G: S! [( `0 v
        LOG_INFO("open /dev/ttyS  failure ...");3 \' X, {2 H; q% W8 }/ k
        return ;
) w+ N( A% h3 [8 M4 ?7 M6 k    }. T8 q8 w$ V* w9 B$ m8 R/ ~
    LOG_INFO("open /dev/ttyS1  success ...");/ z' C  l7 f7 G. R( `2 w) b0 ?  ?" L
    tcgetattr(fd, &setting);& M. t, G$ @9 ]& ?: W  h: N$ V) V& R# R
    speed_t speed;
+ J$ Y; V+ B$ @$ k+ C/ J. t* k; E9 [    speed = btr;/ Q+ M( P6 A! w# R
/ K8 j/ T/ f( R# A' O
    cfsetispeed(&setting, speed);  [/ M' ~5 _9 {, Z$ a- j) d
    cfsetospeed(&setting, speed);
8 |3 m* R3 j' R: B; v  N    cfmakeraw(&setting);
+ a. l( B. G: q1 ^    setting .c_cflag |= CS8;  w4 W9 Y7 @( e" X# R
    setting.c_cflag &= ~PARENB;
4 {( b; Q% ~( M0 k- y7 E    setting.c_iflag &= ~INPCK;
" X% y, G. N& K4 Q+ R+ ~, q    setting.c_cflag &= ~CSTOPB;; q- G* s2 c3 j* `
    tcflush(fd, TCIFLUSH);
3 C( [( W6 U- P, u$ V8 K    setting.c_cc[VTIME] = 0;6 [, k/ X( z6 ?. Q
    setting.c_cc[VMIN] = 0;3 n( ^5 F$ v$ o% |& G% H0 w
    tcsetattr(fd, TCSANOW, &setting);
2 F1 G* z7 F& g, r, \2 x- g) Y* M, \  r7 }3 z2 ]4 \! }' ?
    int ret;& U* w2 B4 Q+ @" W9 ^/ I
    char *buff = {"hello,485write ok"} ;8 z8 b# |  }# J% q! a$ o! \6 \
    ret = write(fd, buff, 17);
/ e5 u" o4 o" [' ^6 y
1 L. d& Z7 m' B5 V8 A( p    char buff1[256] ;
* a* }$ z$ W# y" o    while(1){% P4 y+ \$ Z6 s! h
" I& K; ?! P+ g) F( [* h; l* p
          ret = read(fd, buff1, 255);+ ~$ w, i5 V" G$ C
          if(ret > 0){, W  i, U3 Z3 [0 p, [# V- t: B, y1 n/ U
3 {: N$ V! q! ~( ^! g
                     write(fd, buff1, 5);  G, v, C6 K$ ^+ V

6 J" N( l6 A$ v" F, M/ X4 A! |5 U                      LOG_INFO("rs485 receiver ret = %d " , ret);
5 a  A9 R! Q3 R) S$ I# Z
. N: v+ ^: h% ?, U9 O1 A: U1 u          }
( V+ n$ |8 F& j/ l( B
. a# {2 x8 ]* @. l' Z; b6 j8 S( ^    }
# H- \: f8 u5 P4 `
5 a! a9 p" c! y! E9 M0 m   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
( s" p( Y, O* v( L6 {# \
: \4 X3 a8 K/ w  w' a

( T, y, }7 @  Z: f, u' _3 a
( y3 J* V! \. {3 \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 20:02 , Processed in 0.035663 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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