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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

2 P  `: p7 g  G! ?1 |) {0 g$ b您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。
$ u+ z4 K  G3 u) p: M
8 U# u8 L' K% n, v; ?/ K* y
我的qt程序如下:
% s1 t$ z4 n7 R9 o* b" I. s6 s& E   struct termios setting;( o. c, t" I9 h% H6 F5 a
    fd = open("/dev/ttyS1", O_RDWR);
1 m, |/ f8 \  L' j8 F    if (fd == -1) {. @, p' r' a. X% _: ~2 e% t0 R
        LOG_INFO("open /dev/ttyS  failure ...");# C. B+ p, ?1 m8 V. J- d3 V, v  l
        return ;3 ?+ k1 d+ r0 a
    }
8 O+ N/ N8 m1 e* N. Q: b/ Y    LOG_INFO("open /dev/ttyS1  success ...");6 u1 R/ S. f9 I# J) A! h( g7 C
    tcgetattr(fd, &setting);3 B  m, e6 r, ^( C& q; N
    speed_t speed;
1 k/ w: m. r. e( {% ?- P8 @. a    speed = btr;2 U: N# I* h4 C: F+ |; ]

! @9 \! k1 c( q/ q, X' A0 f  }    cfsetispeed(&setting, speed);
3 E: J5 C: y, _3 Y: q/ l3 I, x6 M    cfsetospeed(&setting, speed);& B, o' q6 {3 ^1 [  t0 E
    cfmakeraw(&setting);: x! t/ x/ P+ X% u
    setting .c_cflag |= CS8;9 s  c. o0 T/ K9 n
    setting.c_cflag &= ~PARENB;2 C- ]/ o5 I% G
    setting.c_iflag &= ~INPCK;
7 H1 H# R) X: {$ c% L9 [    setting.c_cflag &= ~CSTOPB;
/ F5 K+ j( ]& n' I. V    tcflush(fd, TCIFLUSH);/ d) e3 r; @. e: M) G6 m
    setting.c_cc[VTIME] = 0;
1 k3 X' ^5 l( C& B    setting.c_cc[VMIN] = 0;
; `/ i! L) `& M( X; q, n" d( [- x    tcsetattr(fd, TCSANOW, &setting);/ i( E" E5 N+ E# a* l; D' Y4 b
0 m2 F+ j; H9 y  @- O. [
    int ret;0 k" O3 P6 J  C/ \) u6 j
    char *buff = {"hello,485write ok"} ;
0 a7 U) h! n2 w7 ]; N; b2 x    ret = write(fd, buff, 17);
5 F+ C+ ?9 F$ @- c' q  S3 [0 {( r# h- E5 c0 J' `# `6 T' K. v9 a
    char buff1[256] ;5 D' z6 i: l3 x1 m; H0 Z* C
    while(1){
1 h; Y: U' F6 ]5 |
  p* d( u2 t( _+ E: D  V          ret = read(fd, buff1, 255);' h9 h1 w! V2 H7 l
          if(ret > 0){+ N4 d8 }4 v; I

! c+ ?, X5 K+ X! D                     write(fd, buff1, 5);& e9 L- D6 g! S6 f* w& f
( d2 D, b# e8 v0 ~! K0 K# o- J) G0 u
                      LOG_INFO("rs485 receiver ret = %d " , ret);
2 t9 @  x& t; T6 }2 s, m& b) E5 d) u7 X+ m
          }
- i( n% X2 H0 V" A; ^
: E3 a. j# z/ x' o$ [    }8 _: z% t# v" ^* \
8 ]: [: x/ \2 ~5 ?
   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?; R2 \* h9 |7 C5 N$ ~4 W
+ U3 a- W4 w( q

/ ^( `8 d8 N( p* |' A; M/ s( x5 E/ H! v8 q7 z" b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-1-31 08:11 , Processed in 0.044510 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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