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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

! s4 |6 f5 A0 N, U7 j您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。7 f5 W3 _2 e- r

% O. P: ~, q- R$ l  K! S我的qt程序如下:# s$ M4 Z+ ~! Q: o
   struct termios setting;
) \/ Z$ _9 x4 A% J7 v    fd = open("/dev/ttyS1", O_RDWR);) A2 H. `' q6 \
    if (fd == -1) {
& q$ m7 ~; I1 \        LOG_INFO("open /dev/ttyS  failure ...");6 \& P3 i9 w. }( w6 ]$ _6 n! J; }
        return ;
' C8 p, E- {, O5 o    }
9 V, n0 E: o2 h    LOG_INFO("open /dev/ttyS1  success ...");
8 K; h9 [1 ]  U- o, x4 C6 m" t0 {$ Q    tcgetattr(fd, &setting);
. Z/ \1 k1 b, e1 q* b# |  z% l+ S1 B    speed_t speed;! E9 _; m" u8 m" v/ x3 x
    speed = btr;8 s! H' u9 o3 ~  H. ~! U& S

) _/ I, N3 R7 t; i4 ?# x    cfsetispeed(&setting, speed);: @3 I' b7 w3 _! C; b: H+ Q
    cfsetospeed(&setting, speed);
0 ?) t. s! g/ u2 t    cfmakeraw(&setting);7 S0 f; b# }6 {9 [: T
    setting .c_cflag |= CS8;
* t4 ]8 d$ T" _: `# _! P: H7 h3 i$ v    setting.c_cflag &= ~PARENB;
2 [2 w0 r( t  _6 B0 U3 v1 y    setting.c_iflag &= ~INPCK;' `0 O4 d5 {. L9 z) |/ ]7 [4 c8 E1 r
    setting.c_cflag &= ~CSTOPB;
: Z% K. k1 u, }" F' A" O    tcflush(fd, TCIFLUSH);
3 P+ L: w6 \- ]: L" ~; h    setting.c_cc[VTIME] = 0;& T$ p( l9 ]. O5 [! U
    setting.c_cc[VMIN] = 0;
4 Z' O. j( S1 D) ]" [+ e    tcsetattr(fd, TCSANOW, &setting);
* F- B3 E# U' X- A- [1 v9 ]1 |$ l: Y; W( l0 A4 z
    int ret;8 [; P: k( c: e8 z. H/ q' `
    char *buff = {"hello,485write ok"} ;
" x" A( Z5 x9 ^; S1 l# t    ret = write(fd, buff, 17);
7 F5 R: g6 E0 o$ o; d& s3 O
6 W* R: V# g: i: X7 j" U' p    char buff1[256] ;
7 _7 C: _! x' k& _    while(1){
+ G2 E3 t( X& ^5 s' z
0 `2 W! R  z9 `' s4 B/ |% }6 M          ret = read(fd, buff1, 255);; e7 m( ~7 W1 l: U
          if(ret > 0){8 C( e" f$ T  O' e6 o9 |6 w
! h* f4 C, i4 [7 Y0 f) S. c$ h3 B
                     write(fd, buff1, 5);* Z7 C; k4 L7 t' s" q
2 l( F/ c( r& s( Z* k6 o5 u
                      LOG_INFO("rs485 receiver ret = %d " , ret);
6 S; O" U7 t2 o3 y/ G+ i& i$ i3 W/ ^
          }
* E' ^' U' F6 [2 q9 R9 o) y
$ w' h& a- g9 H8 B    }" |+ ?3 e( S7 ?; V

/ I' w: [( x3 l! V6 _1 X9 x( M   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
- P- _6 t8 J9 ~2 N) O
' m4 L) d' }0 |: r5 t
6 b; D6 f) _2 x2 o  k
' q" v0 ~# J/ P3 {% ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-17 11:20 , Processed in 0.037558 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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