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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

( q5 J  @6 i$ `( I6 ?您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。6 Y& G' _( z4 O( V( d, r5 l5 p

- b& }2 k) a* A我的qt程序如下:: O, }' N: f0 P* R+ J+ w) K
   struct termios setting;
4 S, r) M/ m$ N! P# c  G+ m2 e0 b& S    fd = open("/dev/ttyS1", O_RDWR);
/ Z' @# C1 K2 x- e    if (fd == -1) {; ~, P5 C( T: S' I
        LOG_INFO("open /dev/ttyS  failure ...");! J6 S  z. X/ ]4 l7 C  Q: P9 i
        return ;3 R. s0 W+ G9 t$ p8 i  C
    }0 @2 o8 G5 I" [4 E6 G
    LOG_INFO("open /dev/ttyS1  success ...");
  V) G7 h4 l6 r! }    tcgetattr(fd, &setting);4 T. y  z: ]/ o4 F6 W
    speed_t speed;
! `: G+ D2 w$ z/ W" h, O# c% N    speed = btr;2 {2 C8 B3 f+ r8 ^' e8 b/ @
' v: c+ r  l! |) Y- r# K$ h7 j
    cfsetispeed(&setting, speed);
! b* D& ^3 N4 K. D. Y: ?5 S; o) ^    cfsetospeed(&setting, speed);
9 c# G: m& Y3 f- E9 ]    cfmakeraw(&setting);
' H5 Y7 ]" n0 K5 D9 M    setting .c_cflag |= CS8;: i9 U9 j" \3 R
    setting.c_cflag &= ~PARENB;4 V$ M: D' j6 b9 \) t3 n: Y
    setting.c_iflag &= ~INPCK;
% K* _7 j9 o! l    setting.c_cflag &= ~CSTOPB;' x- o) a' H/ r7 Z/ x7 Y
    tcflush(fd, TCIFLUSH);
- A: G4 o+ _6 _0 m# h, x9 Z2 P    setting.c_cc[VTIME] = 0;
) n# Y3 D$ p. B0 o    setting.c_cc[VMIN] = 0;* h2 ?, H$ }. F2 r( W; D4 [
    tcsetattr(fd, TCSANOW, &setting);
6 E, x2 Z! f5 e: {( O1 M( j% B2 P
$ @7 d6 D) H: S- j- C    int ret;
2 u7 K8 g1 x" ^) L) X- z( S( u    char *buff = {"hello,485write ok"} ;6 U# [: \& `6 O' Y4 X/ s
    ret = write(fd, buff, 17);
7 y4 Z, Q3 p, W# q$ Q* a& k
6 U, O$ L0 z6 m. C    char buff1[256] ;
. K# c) Z3 u$ g/ X# Y" }* m/ Q( |    while(1){
# K; r8 R9 ~2 v0 [# c' S8 R2 _9 Y! G2 c8 m& R" [# j$ {% |
          ret = read(fd, buff1, 255);: P5 j$ P. {" L1 |- E1 J$ d
          if(ret > 0){2 Z% ]5 i& s9 F$ G( O& J0 }/ m

% a7 r: e6 @7 [2 s                     write(fd, buff1, 5);
! }. ]" Z. m* B: K* S, N* R  X" z) q
                      LOG_INFO("rs485 receiver ret = %d " , ret);! J' A  M3 n; r/ \8 T
% ]9 ?' N# U* y/ g! J" ]7 o2 z. L1 I
          }
9 _. M/ c) B) C  f2 M! h9 G
: v0 @+ o# E7 j/ H! `# v4 [    }
4 Z5 H4 ~/ R! i/ h/ B( O2 Y; i& v3 c* L0 w4 [& i3 s0 V4 a
   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
- {0 |7 t1 b, W5 P

" ~" a5 |! Q, ~3 A4 P

1 i# o8 B8 h* D% l+ G0 t
% K1 d8 m3 Y2 ?9 I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-16 02:12 , Processed in 0.050730 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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