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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

积分
1263
跳转到指定楼层
楼主
发表于 2016-10-8 12:44:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5 C; c% u. A2 X! ~3 l
您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。
7 J$ A4 [/ d3 p) N( i/ ]

/ Y0 W; b  @' q我的qt程序如下:7 n0 h% x; f5 G/ y9 s
   struct termios setting;
# q" ?" v5 h. x    fd = open("/dev/ttyS1", O_RDWR);
  z1 K/ g5 a( x  k& n    if (fd == -1) {
: }' q0 i0 |, h+ z. X        LOG_INFO("open /dev/ttyS  failure ...");0 q3 t. O* w9 x$ n8 u* D
        return ;) O& w9 d: h9 y
    }
& H$ q" t7 b* k1 H( u    LOG_INFO("open /dev/ttyS1  success ...");
! U0 g2 A) f. f    tcgetattr(fd, &setting);, k* R1 e5 e/ v
    speed_t speed;  [/ a. u- W8 y3 G; ^7 w9 {$ V  W/ Q
    speed = btr;
8 b& p4 d* e. m" D! Y. \
( t* L1 ~* a, Y4 G! F    cfsetispeed(&setting, speed);, t9 ~' h; O4 ?1 V1 \; P
    cfsetospeed(&setting, speed);
6 n9 N9 F% I, T1 Y  a6 r& l    cfmakeraw(&setting);
" n. E3 D' `" S; Y  d2 i7 P! \    setting .c_cflag |= CS8;$ r" K5 r1 U1 m. |0 a
    setting.c_cflag &= ~PARENB;
" L/ Q6 J, v: q" A8 j4 X  M& |/ V    setting.c_iflag &= ~INPCK;
# R5 }$ U; l' v/ w- y, V9 N% I- ]    setting.c_cflag &= ~CSTOPB;
9 q& y0 j' v. o5 C! ^    tcflush(fd, TCIFLUSH);
- r/ J6 z9 g% v4 ^    setting.c_cc[VTIME] = 0;
6 H! s4 H, j4 d$ r+ ?    setting.c_cc[VMIN] = 0;. A; z0 A( J. I% B1 }% i( s
    tcsetattr(fd, TCSANOW, &setting);& r. [, N  K+ X

. ]" W  P. f, v, Y( t    int ret;
: C* ~8 v2 n* g6 A; D( @    char *buff = {"hello,485write ok"} ;
( f; H5 X& T! q3 P7 z    ret = write(fd, buff, 17);; o3 W8 f" q9 Y
$ x) g: G" g: t* L3 r7 y
    char buff1[256] ;
( k& |2 n% Q: r    while(1){
- K* _' o- r  d7 ~/ v* `$ B! Z' V3 v
          ret = read(fd, buff1, 255);/ P0 H; i: ^+ s) G2 N: K/ Y
          if(ret > 0){: X; O& l% x! h$ M" `) [
, \, J& ]+ Q& y' m4 s3 h; X
                     write(fd, buff1, 5);- D" O) {8 L# Z
$ ?/ V4 J2 i8 y( w6 D: u  |8 [- |
                      LOG_INFO("rs485 receiver ret = %d " , ret);* t/ u( I2 ^/ H2 b6 D( M( q
% w5 Q) R) t; |
          }* w$ m3 h* |$ C& _) b4 d( J

/ X! B1 }* M3 ~' R( `8 [9 i, \    }
7 Y0 J% }3 A% y2 v0 l- k" L  B$ y7 A" u- A
   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
. a& Y1 E5 h, e  o3 I
, P" c. C: m, J5 p" G4 {

6 n1 x7 k, j& P+ G7 E! G  q9 l1 l  w0 L6 C& x8 d/ V/ m7 n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 14:51 , Processed in 0.035413 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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