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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

积分
1263
跳转到指定楼层
楼主
发表于 2016-10-8 12:44:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
# O; V8 ]9 q- h" H: }
您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。' V8 A: B& S. m5 Z! M+ I8 r2 d

& P2 s7 K6 K/ g  C3 ]' ~; w我的qt程序如下:
8 l/ `1 V" @5 Q" p   struct termios setting;
' _" ?  n3 D$ |) k    fd = open("/dev/ttyS1", O_RDWR);$ Y- g- n: w$ |9 |4 x5 e( Y
    if (fd == -1) {% ~  R- v0 e9 k
        LOG_INFO("open /dev/ttyS  failure ...");( g1 D0 c+ S. B: I- C: D$ E
        return ;8 q% k' C7 g. {! Q
    }
& b9 h7 O6 Y1 u) z% U    LOG_INFO("open /dev/ttyS1  success ...");( V0 m5 m3 v/ ~; I7 L5 f
    tcgetattr(fd, &setting);$ Q! T! \& E0 z  t, S8 t
    speed_t speed;& p: c: ]8 P/ @$ B
    speed = btr;
# G" ]; n: |$ M1 I- F# J* x8 O$ L) f4 r* g; @
    cfsetispeed(&setting, speed);
3 C( C# ^8 |1 K+ y: G6 ?' [, T    cfsetospeed(&setting, speed);* _9 W( D+ h6 c; e7 M: {
    cfmakeraw(&setting);. z: _5 v1 ?* ~
    setting .c_cflag |= CS8;
9 i0 z4 I9 l% p5 V: r2 w0 K; S    setting.c_cflag &= ~PARENB;
7 J) F* F; V: r1 x* K    setting.c_iflag &= ~INPCK;# L; s3 y" K6 E! H% ?( E5 W; V+ b
    setting.c_cflag &= ~CSTOPB;( F* O4 n* p, E, d# T
    tcflush(fd, TCIFLUSH);
. b( V% O& I1 r! d2 B    setting.c_cc[VTIME] = 0;
! V/ q  C  x) O" n; a    setting.c_cc[VMIN] = 0;
7 k% Z) _2 v. V0 w- P( x9 o6 ?    tcsetattr(fd, TCSANOW, &setting);
1 y4 q5 _) Z* F- U. `1 s3 L
8 ]4 u( M# ]1 u6 h! Y: f    int ret;
/ R# K% Z$ q7 n5 z8 \    char *buff = {"hello,485write ok"} ;9 a( r7 e$ y6 r1 l, ~* r2 i0 E
    ret = write(fd, buff, 17);
4 g, x% k0 k8 c: C6 \
3 q9 V9 P8 ?0 h1 e3 S. x! Z    char buff1[256] ;
2 v% h& O# t0 ^    while(1){2 x, r+ S* a: M( h
2 J. ^4 H! e% k+ z/ L1 I
          ret = read(fd, buff1, 255);8 d% _6 k* o: J- g2 p* S
          if(ret > 0){- F, [5 p- }- T$ d! L+ d
, j9 {, f$ l1 ^$ v: {; P
                     write(fd, buff1, 5);/ H" e. p+ Z! u# r7 z2 t+ t

! _* y9 k5 O$ h                      LOG_INFO("rs485 receiver ret = %d " , ret);& s! L9 |- G8 V5 g
2 ]6 m) W5 N0 y* P& d% o. B, g0 W) p) k$ C  W
          }
6 N) ?* x' ~# W( b, N* z) _8 ~$ ^: h5 x0 y' y( Q% M5 o: U
    }
9 n; Z4 i$ {$ j0 O0 d
2 o9 J3 o# G7 p) F( u   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
% \& i# l5 v! j7 K9 k! M9 i" o

4 G. y$ x  i# G: @3 \9 g' n

/ s1 s7 N. `2 Q1 n. p% F9 p: A3 K# T7 s, l2 T  v
分享到:  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 12:41 , Processed in 0.043409 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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