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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

$ x% Y8 E" O! o) F! I/ f4 k您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。' b, @( H6 _/ f2 r+ [) b1 ?
# {( X) ~0 u+ o5 p3 O* F
我的qt程序如下:( T" I9 ^0 a2 f. ]+ E; R! e. x
   struct termios setting;/ Y* _5 A7 b' Q# E0 S) U$ e% A; v
    fd = open("/dev/ttyS1", O_RDWR);7 T) D% N) {4 A" A% j' J
    if (fd == -1) {
' ?+ [- r* k" Q' x7 O9 G6 v/ @        LOG_INFO("open /dev/ttyS  failure ...");
0 S  z+ a. C  T% p        return ;3 z0 L- p8 v8 g
    }
" p- N) ~! G! O! ?  h- H' `- Z    LOG_INFO("open /dev/ttyS1  success ...");
6 A2 N5 p( D$ N3 H    tcgetattr(fd, &setting);
' |  D- z- H, }+ @' ^. o    speed_t speed;
3 l  w& c# P. T! n  w3 l; [    speed = btr;
4 F' _" s$ F% U) a; K( z) ?2 D3 x2 I7 o' Y
    cfsetispeed(&setting, speed);: q) J. u- H; K+ U
    cfsetospeed(&setting, speed);( }/ T! y) X2 M% J4 I: u
    cfmakeraw(&setting);( J- e/ m; j+ {) A. l9 ]/ Y
    setting .c_cflag |= CS8;, P* o1 m8 B5 b( p0 ^2 p5 ]! f
    setting.c_cflag &= ~PARENB;
- T5 ~( W* M; S; ]    setting.c_iflag &= ~INPCK;
7 L$ C& e: {) N, b* i6 N( X    setting.c_cflag &= ~CSTOPB;
+ Z7 T8 ?( r) ^4 C. `. P- v    tcflush(fd, TCIFLUSH);
8 f6 o9 Q( P/ ~$ ~    setting.c_cc[VTIME] = 0;
# t: X/ O6 V7 Y8 t# \$ H    setting.c_cc[VMIN] = 0;) Y: ]" G1 r% q, i1 j; A
    tcsetattr(fd, TCSANOW, &setting);/ P+ o2 p& F$ n% j

4 l( z  w, t5 `    int ret;. Z; E' f2 V+ a, o! t( _8 G. z
    char *buff = {"hello,485write ok"} ;1 a* w3 m4 n9 y: F+ y3 Y2 I
    ret = write(fd, buff, 17);( V- R1 Q" x4 w, l" R
1 K' n0 G  W" Y3 K5 U% h0 Z) E$ o% }
    char buff1[256] ;
2 A! {  ]2 h+ S2 \. [    while(1){5 j/ _" t! H4 x, X9 O0 |

! j$ I& ?# U- L7 q" U3 t. i$ T0 C          ret = read(fd, buff1, 255);
  U4 x9 x  k0 I$ \: Q% h          if(ret > 0){% n8 w# [/ l  B) v  N  T
7 H* J) a5 G8 ~8 o! [4 N
                     write(fd, buff1, 5);* F: g+ C- A/ R1 s# u8 d6 S  [
) {, Q: N2 C8 I7 q" T
                      LOG_INFO("rs485 receiver ret = %d " , ret);- v4 z: Q$ w1 M( D4 u  ^! c

- c: w( H# d* d- d7 n4 V1 w' P          }" g* z5 p. ?0 |) H2 E5 q; L( F

5 Z# [  V8 t- s. z- p- j6 _+ s    }0 b, x2 @" ^( m+ I1 s( y/ b

/ G/ h  Q$ N3 u- Y6 O   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
  X$ Q3 T: `! Z3 r
2 g2 o& \; [+ h+ f
5 Z* v! g9 x  v5 E3 z' y* N' k
. e7 I7 _; K# V3 e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-17 11:16 , Processed in 0.045702 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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