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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

: C& e/ [+ R2 K6 Z您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。' O( K; {! C: o% ~, x; z
# {' \4 E3 V% Y) ?
我的qt程序如下:
/ u+ ?! p9 I+ }5 c: ~5 s$ s   struct termios setting;' h3 a3 Y# n3 W. k: {( N; o2 F
    fd = open("/dev/ttyS1", O_RDWR);: L3 n" o1 w& k) s* ?9 \0 w) T" Q
    if (fd == -1) {
; |& O' ~% n, o) \# m# @( w' u  u6 l        LOG_INFO("open /dev/ttyS  failure ...");
- {/ U% M2 l. O  w7 p& L5 X6 Y. |  Y        return ;+ U2 w' ]8 \5 K& U
    }4 A$ [( T; a3 F
    LOG_INFO("open /dev/ttyS1  success ...");
  P6 [% Z* E. F* M    tcgetattr(fd, &setting);0 D/ V2 D# g! ^- u, I; E9 a
    speed_t speed;
6 X! c8 o( v! N; K2 }    speed = btr;/ |) y; Z% T, _( q/ y! W. p

# l* O4 s! E3 a! c0 Z    cfsetispeed(&setting, speed);
' D3 M3 f0 X" R( I. d    cfsetospeed(&setting, speed);  K9 Y: J& W. o; g* u7 e8 c# W+ y, b
    cfmakeraw(&setting);5 E  Y  k; p1 y/ d2 d
    setting .c_cflag |= CS8;( H- ^9 v+ x. W+ ?' F+ I
    setting.c_cflag &= ~PARENB;
7 Z! T! s. U% g+ x9 y8 Q    setting.c_iflag &= ~INPCK;
! i- U, _# E" n1 `    setting.c_cflag &= ~CSTOPB;
, y2 q- Z* w8 o5 t& {* g; f    tcflush(fd, TCIFLUSH);+ u( o4 h' c9 g- x  Y8 l; v# f
    setting.c_cc[VTIME] = 0;: X9 ?- `8 z& z4 d9 e
    setting.c_cc[VMIN] = 0;
  A$ P: o2 _7 m! d- P- i    tcsetattr(fd, TCSANOW, &setting);) S! S) X$ L4 R: D
5 d1 b  F5 W* t; x; B, d. E
    int ret;
' e+ v' X8 Z  i5 _8 A! p! ^    char *buff = {"hello,485write ok"} ;
8 j$ N0 K( J. S6 G  \/ o% ^    ret = write(fd, buff, 17);: A* Z6 i5 @4 r  X6 b+ m
# r) J# p2 f& Q( y: G
    char buff1[256] ;) x) v) M2 B  }3 l% F( [
    while(1){* `$ |/ n# e- f6 n! r) P  M+ L

/ x3 m8 \. C; |          ret = read(fd, buff1, 255);3 p3 s$ z& p! _9 j3 c+ q# B
          if(ret > 0){) l4 C, p# z- r* y1 y) l" G1 Z

4 b8 E, K9 h" Z( E) G; S                     write(fd, buff1, 5);, s% n( Y% }  b. x3 a; n
& }- J3 G/ T( d8 A8 b# _) C( [! c1 n, ~
                      LOG_INFO("rs485 receiver ret = %d " , ret);
$ f. J- P' _) \; N2 B8 |2 P+ |* }$ a) V' g" d
          }
% }1 t& ?; a, {* K( w
# P# ]- C. B4 @) E2 q    }
' H# w9 V& r/ S6 ]* g; k: t. q: ?1 Z0 X& g9 Y4 G# x3 y; X7 ~
   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
6 Q8 p" ?/ A) Q; A4 X
( E  O+ J2 s# D( q# U" e

1 Q; V9 |8 q- X! M0 b$ }2 A$ A8 q
7 |) L8 V! ?# H3 {0 i, q
分享到:  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 20:19 , Processed in 0.037169 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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