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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

积分
1263
跳转到指定楼层
楼主
发表于 2016-10-8 12:44:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
. [3 _) D( Z( w$ I& n, ~
您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。6 s  Y$ M# i2 c. R# S+ m4 o9 k
3 l9 b; l$ B5 r6 N' U: x) M% w
我的qt程序如下:
  @- o$ \, M! V+ h   struct termios setting;
! P. i5 t- M5 K2 l    fd = open("/dev/ttyS1", O_RDWR);* ]7 k) V& \6 A( E# |0 G
    if (fd == -1) {% Y9 G2 J6 M- K5 G2 b& j
        LOG_INFO("open /dev/ttyS  failure ...");( Q$ b6 D, ^: {, T  l7 z- A
        return ;
* Y* l$ u3 G8 ^5 H  s    }2 r( }/ d5 R, X2 _$ N
    LOG_INFO("open /dev/ttyS1  success ...");
% w" E# ]$ R9 B3 z5 B$ o1 P1 R    tcgetattr(fd, &setting);3 a5 s3 ~4 u5 q; S- V9 J! v9 Y
    speed_t speed;1 z  X" \# }& ]/ b- S" F
    speed = btr;
! M5 R4 t7 Z+ U& b4 J$ U! ~# {% X+ X+ R  \  w
    cfsetispeed(&setting, speed);" C) }6 R+ U' ?# Q' E
    cfsetospeed(&setting, speed);9 U. }/ U; P0 c  H0 F! O2 W
    cfmakeraw(&setting);5 S8 k8 ?8 {4 P* U# y. }
    setting .c_cflag |= CS8;
7 f) J/ w9 \: {; K* G& e5 T4 `    setting.c_cflag &= ~PARENB;
1 K7 ~' U+ ~  _+ @+ `# Z    setting.c_iflag &= ~INPCK;
) s7 z9 D) C" M" @    setting.c_cflag &= ~CSTOPB;+ v8 Q0 t- `; L& S0 m
    tcflush(fd, TCIFLUSH);$ u9 B# q8 S  {3 n5 S
    setting.c_cc[VTIME] = 0;3 V/ n7 r# x$ w; f( {; j& O3 t/ ^
    setting.c_cc[VMIN] = 0;
% F3 }8 F* O: \. f. e+ o- n    tcsetattr(fd, TCSANOW, &setting);. {4 t) [& y9 U: S$ [
7 F* f+ N0 h3 h4 M( Z4 q
    int ret;
" {% x  p, T' X$ v% j3 M    char *buff = {"hello,485write ok"} ;
2 d. H) v  `. q+ v0 o    ret = write(fd, buff, 17);
1 P% v" T- i% z' V6 D0 l+ h2 W  }) `+ f: g  H3 d
    char buff1[256] ;
0 k1 J4 m  K* Z3 P3 `+ c* I    while(1){
  S7 y$ M0 v( {1 z; P; e/ g+ l' e$ ~  J# U: r" A/ c
          ret = read(fd, buff1, 255);
  p2 X7 f- |5 v, X% M2 x          if(ret > 0){6 }; {- u3 _( W& P
1 t9 {3 N$ J; W- p
                     write(fd, buff1, 5);$ a& A8 W; r/ a" g; V2 ]
: u4 i/ P; N7 p
                      LOG_INFO("rs485 receiver ret = %d " , ret);5 c7 O- h( F1 L4 n# F
# }* j+ |: i6 _: ^
          }# y. U/ K% T7 v8 h; P+ w! k6 z/ |* D
2 I& \: T1 n3 P3 h' ^
    }  i2 \( h$ J, e

2 E' O# p, x% G   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?7 a3 j4 `$ W' M3 F
$ X- y7 s' O( P
. p; a5 f2 v2 H6 O) A
( B, s' ]- e% q$ W' [. w
分享到:  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 23:53 , Processed in 0.035787 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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