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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

8 k/ E( ~9 t+ Y" w2 T您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。' d8 J9 l4 r7 p8 m: [3 P2 S

) k) t* y+ Z8 Z+ g7 x3 m+ r5 X我的qt程序如下:2 m1 R0 h+ R* c
   struct termios setting;5 o8 _1 c( _$ n9 H- H" N
    fd = open("/dev/ttyS1", O_RDWR);
$ w! {6 A$ e  n; X6 h    if (fd == -1) {' L3 C- I& ~8 _
        LOG_INFO("open /dev/ttyS  failure ...");9 A3 }3 Q% x1 ]; |% V
        return ;4 N: ]7 F( O3 F5 l/ S. Q
    }
, [3 T: t6 I% S5 }  f8 m    LOG_INFO("open /dev/ttyS1  success ...");
! B, Z' f: y* D    tcgetattr(fd, &setting);2 U8 V; ~! G/ k+ k, n( N
    speed_t speed;0 x8 T9 e! {1 s# O% v
    speed = btr;
* _+ T; g, E; K
% S. m1 t2 _3 M; q& c$ M  j, ?2 S* H    cfsetispeed(&setting, speed);  ]% U7 c: z2 A/ ]  e
    cfsetospeed(&setting, speed);, d5 Y$ S; r! }
    cfmakeraw(&setting);8 k2 Y) H9 Y" E5 @5 }  k
    setting .c_cflag |= CS8;
4 X+ {8 C) `1 q( f$ K& B9 }0 E    setting.c_cflag &= ~PARENB;
' i1 u% b- |: y/ p. m$ G( E  N    setting.c_iflag &= ~INPCK;
1 ?2 [- _2 j6 F, k9 |  `    setting.c_cflag &= ~CSTOPB;
6 ^, g! j2 p& @2 b    tcflush(fd, TCIFLUSH);
. d# B; P3 i! z    setting.c_cc[VTIME] = 0;1 r( E$ D5 \. t1 I4 q; E: ~: Q
    setting.c_cc[VMIN] = 0;6 p5 Z, @" z) M- y: f( T
    tcsetattr(fd, TCSANOW, &setting);) M' D9 A0 y' O$ `: O3 ?3 B( O' O: _% {
3 C& Z0 ?) W  u2 q, v! F
    int ret;( ^/ w3 V$ ^* @9 C7 Z/ u& }- ~% E
    char *buff = {"hello,485write ok"} ;" `4 m5 c3 s" y5 `) T8 r. b- S5 Z& s
    ret = write(fd, buff, 17);8 G2 d" U3 D2 M$ d
7 a2 ?; J) W! n3 u; w
    char buff1[256] ;( \* M* a; [; ?
    while(1){( ?8 C2 W; V0 a6 `# p- p
5 u* S0 O5 V6 b& [# l" |
          ret = read(fd, buff1, 255);
! `- }. k# s7 W! _& m          if(ret > 0){/ H) U! ~0 O/ p0 {$ I' }

; |" N4 l# p' W7 ^, k7 V                     write(fd, buff1, 5);2 ?7 G. B# }- h6 [& c. b( m) t
* a/ V2 e6 ?/ O' K
                      LOG_INFO("rs485 receiver ret = %d " , ret);
( A6 O6 x/ @: k% g5 D$ \3 Z4 p( r! U. w- ?* _, U
          }# R) g" r( L$ b
! Z' f! I! x4 r5 ?0 T& z
    }9 Y3 P' b* p/ [- Q4 |' v
, [7 ]7 P+ v3 I9 e
   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
- F7 m/ z8 i' S5 |" y6 ?

$ b8 B! i, t& ~  W0 d8 w
% ]5 ^" b. ~; S* w4 Y. k

- s# f! X% _( d! X) O$ T
分享到:  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 09:52 , Processed in 0.050309 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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