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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

' A( F' o5 t/ a您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。1 d2 k1 x8 d) |  K% k/ Q
- q% e8 f8 @/ M" q1 ]; d# W
我的qt程序如下:
0 n- ], I8 x+ W# ~3 H9 U4 q/ P- u   struct termios setting;
: u2 r3 V$ }2 p1 J; u- u- l: ?  |/ `    fd = open("/dev/ttyS1", O_RDWR);
5 v& j1 P$ y  f* O6 ]8 F    if (fd == -1) {
) A( u! M! p4 q5 D        LOG_INFO("open /dev/ttyS  failure ...");% I0 i$ T) [& t* Q! m0 P& g7 O( N
        return ;
, d4 G1 S- M7 U7 T+ W    }
5 W4 A2 }5 ]1 E, [* a2 [    LOG_INFO("open /dev/ttyS1  success ...");; v- l$ L; P/ o2 d/ `
    tcgetattr(fd, &setting);
6 G8 v: B/ {. g& h& q+ t' L    speed_t speed;% u, ^8 J, M& w0 }: |# b% m
    speed = btr;, q. {- U. q( J; u* `' \$ |- I, m

8 I2 V+ }! B  U" N: d    cfsetispeed(&setting, speed);) ?2 ]" P4 l, b6 X6 E" T
    cfsetospeed(&setting, speed);
# I) P: \# {, b) a& L/ m6 D+ {    cfmakeraw(&setting);
/ E1 X: p. k+ h5 S7 y    setting .c_cflag |= CS8;
  w0 o) N- l1 g! Q! ^    setting.c_cflag &= ~PARENB;
; E  e! c; L0 [4 X& i" z& C# ?& Q+ T    setting.c_iflag &= ~INPCK;8 n; s9 H6 `( R6 i) J) k% Y
    setting.c_cflag &= ~CSTOPB;
' m0 t5 b5 h' _" c6 Z    tcflush(fd, TCIFLUSH);' Z, k% i. F$ U$ i) Z5 M" n
    setting.c_cc[VTIME] = 0;
0 L6 G7 V4 \8 ^& v7 L    setting.c_cc[VMIN] = 0;
! j( Z% q8 ]3 x8 V2 X( f    tcsetattr(fd, TCSANOW, &setting);
4 j* l# @; {  W5 E
8 y. O& |/ E( o5 B' R; B6 b    int ret;
; m1 Z$ a0 B' R4 q    char *buff = {"hello,485write ok"} ;0 _6 o! K3 Q3 B
    ret = write(fd, buff, 17);" x9 Y, S* I0 F# l# }: e
% Y9 T$ X8 `+ i3 ~  N9 m
    char buff1[256] ;" Y" y( u; q2 t* ]* l8 a
    while(1){
, Q7 g- H0 L- S6 @/ z* w2 J/ p& ?  F2 A' S" e* ?& _
          ret = read(fd, buff1, 255);2 S/ V1 _( @2 ^: t1 ?
          if(ret > 0){( k2 z7 t# \% }2 ?' {0 X' D9 }7 @
5 `' M/ m% e3 m8 C% ?
                     write(fd, buff1, 5);
+ v' i* r. S: o* a, d8 X/ {, V$ B' _5 O
                      LOG_INFO("rs485 receiver ret = %d " , ret);
- D) ~+ k$ D0 R4 H" `# _% u1 G: [
          }
, i5 X% w% x' W+ c1 {% @& e" }
& r$ N4 v7 _/ y' F9 \" p& Y    }
5 s6 q6 S" p' L' g$ D
3 Q. l! x) r3 `   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
, M; J' u& U$ r' a9 k1 T: o

! K. t+ ~$ u/ m7 A; N& j# \& x
, {/ @, r6 z, @8 a7 B

) ^+ J/ B6 O  z+ K( X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-16 12:32 , Processed in 0.036645 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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