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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

' W8 R5 E- [1 X$ y您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。
3 A$ q! ?/ t% t6 Z! ?
# M) D- v. O) R1 K$ ~
我的qt程序如下:& [) K/ G, F; K' l
   struct termios setting;' _* z$ |. S8 w* u/ t9 Q( a
    fd = open("/dev/ttyS1", O_RDWR);
7 {. ?" q' u4 S: k( x+ S  ~    if (fd == -1) {
2 c- F) _9 B0 t. b0 E& t! a- a( ~        LOG_INFO("open /dev/ttyS  failure ...");3 h9 V& I2 n8 n
        return ;
' r( ^' _7 c, a  j    }
' \' J: l+ Q% h* W& L# n/ g$ ~1 k& S    LOG_INFO("open /dev/ttyS1  success ...");7 r4 w) r/ a$ Q' `3 F2 g
    tcgetattr(fd, &setting);% u# b) v" S1 \: {
    speed_t speed;
9 H- F, I3 C% p3 o* J! R$ k" d4 H: M    speed = btr;
1 e/ d, B# a3 W3 ]/ v: v* q
0 r* W2 S% p, [    cfsetispeed(&setting, speed);
" V; O* \  Y- v% b    cfsetospeed(&setting, speed);+ G3 M/ X/ Q7 F' b
    cfmakeraw(&setting);4 _+ W/ {9 Z/ w! h
    setting .c_cflag |= CS8;/ H" _  s8 Y' x& n4 m; D  M" S
    setting.c_cflag &= ~PARENB;
6 _0 t. n0 C7 j! g! ~8 N" N    setting.c_iflag &= ~INPCK;
3 y7 k! G# j0 ?, i    setting.c_cflag &= ~CSTOPB;9 V6 w7 a$ f8 o& l: J* {4 p; n
    tcflush(fd, TCIFLUSH);
0 o% @# ?' g, ^) M2 T    setting.c_cc[VTIME] = 0;
4 o, ?1 a5 U8 i1 H7 L- G2 U: L4 h1 M    setting.c_cc[VMIN] = 0;/ f) e, }( _. }! \( z; {
    tcsetattr(fd, TCSANOW, &setting);
+ I+ _! R; U+ z  T: q6 w& ^) o7 A/ n2 k  x1 ?
    int ret;
& C+ |' o+ K: E  P( @- T6 a7 q    char *buff = {"hello,485write ok"} ;
% _1 T2 C: k  K5 i  O% p% e    ret = write(fd, buff, 17);! J# @& w/ W, [0 X/ U0 Y8 s& w

2 C* K3 t% n0 I" n0 ~* g    char buff1[256] ;6 }, p3 l3 ~0 j3 o+ ?; T; Q
    while(1){
3 i! D) g% E0 w2 s
" w8 d' z# ^0 _) F          ret = read(fd, buff1, 255);
$ L# N/ f( u+ x1 }$ b          if(ret > 0){8 E1 J3 @& f6 J9 ]3 I4 N' `7 {6 |
( ^9 {  w4 i  f7 d" e* G
                     write(fd, buff1, 5);' ~. f6 k0 s/ F, }$ c- M
+ q1 t" a& C0 f  ^1 b
                      LOG_INFO("rs485 receiver ret = %d " , ret);. y6 B: M5 l% L
9 }3 c  Q& E8 V, {2 O' ?
          }
. P" X8 L* b8 V1 K$ {5 p! c
0 x4 }+ I7 l7 X    }
: e! R* S- ]4 T7 l
( O' v. R# V7 J3 i& }7 P   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?1 I9 x# L+ r1 W: L7 o$ ?

& N4 d0 c7 u7 C& Y8 E

' h; o! h. \2 E  Y7 |8 G! z0 n
6 V1 ^  I+ j$ C9 I9 z/ F
分享到:  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-15 22:13 , Processed in 0.040010 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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