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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

- d. F+ c8 i# I* v( ]. i6 T' E/ ^您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。4 V& {9 v3 u/ z
6 e* b- @( }3 U3 B) x) r& p9 P8 Z
我的qt程序如下:
4 F7 \' G, d4 x* f' q  [   struct termios setting;
+ ~2 r. A# d' J; `    fd = open("/dev/ttyS1", O_RDWR);
% P* D- t3 x' k  i; k9 g5 z; H6 x  U- ^    if (fd == -1) {
& p4 Z; m& D0 J; p; k9 p4 A6 Q: G        LOG_INFO("open /dev/ttyS  failure ...");
' a5 I! J( t: V        return ;* ^, ]( f0 ^) q3 U5 j; ]" Q
    }, ?: _' R0 d% O. J& z# c  }, _
    LOG_INFO("open /dev/ttyS1  success ...");- X2 k: A+ h4 j' E# T1 {5 M- D% D
    tcgetattr(fd, &setting);- O4 Q+ U' w' T% ~; z# ?
    speed_t speed;
* D7 M# A- C4 I. y% c    speed = btr;
8 k8 r, `2 h- h& o
  d8 Z7 ^" O6 L* i1 W    cfsetispeed(&setting, speed);
7 a' x4 u7 f# x- {  `8 l9 i; N: m& Y    cfsetospeed(&setting, speed);
3 a* p' c7 r9 G    cfmakeraw(&setting);5 B# X, s% z# M
    setting .c_cflag |= CS8;
1 l( `6 Z3 S6 l' G2 {$ _    setting.c_cflag &= ~PARENB;
  ~. @. v. e0 E2 ~    setting.c_iflag &= ~INPCK;
2 e! t: J$ ~* Q. R( r8 y    setting.c_cflag &= ~CSTOPB;  w" m- S, E& b; q4 b' _/ N
    tcflush(fd, TCIFLUSH);
" R4 C) |) N0 p  T    setting.c_cc[VTIME] = 0;
4 V* |- g+ {; j' _& E' s    setting.c_cc[VMIN] = 0;$ P9 W& e, u3 ^! S# J' }
    tcsetattr(fd, TCSANOW, &setting);
+ {0 G- o9 q, S* s, l. L/ c# i: a, |' z
# z6 c) ~3 U. f2 c( m; g    int ret;
& Q  h/ Q# d$ Z! Y- i- `    char *buff = {"hello,485write ok"} ;
5 ]& W+ {4 [" }    ret = write(fd, buff, 17);3 ?+ T# i8 d; ]2 p2 a0 e7 s# h5 j
, x+ S0 ^2 _  J) L' C
    char buff1[256] ;6 a% |. ?) s0 s2 m9 F1 S/ u
    while(1){; V: _7 R- X/ Q' k' G

2 }9 Y7 j! a8 ~          ret = read(fd, buff1, 255);) q, x' i1 V. J5 d; d& A2 v
          if(ret > 0){
% Z6 U) V- _8 Q! l, k$ A
  R; W3 V+ o: k, v# a9 }+ Y+ \                     write(fd, buff1, 5);
' M& N4 V* _: W7 G% Z" L+ b2 }' A# G) S4 M0 N/ x* ~
                      LOG_INFO("rs485 receiver ret = %d " , ret);: z5 Q' p  A2 s9 n
- K5 j4 \* m/ m( K  j
          }
1 |- ~- t9 \& z% Z/ E
5 U  m: T' [0 o" F    }6 c2 K3 i' @% O( Q: |5 K
" K' p5 k, w: o! g% s/ s# a; \
   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?1 s: m1 x- C) M6 X
6 v: @) P" q: M$ l* J
- o. K  }0 k1 o. A

; C. }7 d9 Q# w, z% F2 z( a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-17 16:12 , Processed in 0.036888 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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