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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

$ [* u" q5 C" c) q1 x( Q您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。6 Q9 m. l9 F# s, v  e9 y: B

. J& q# _* `, @+ [% y/ ~我的qt程序如下:0 P4 p* w* C; E+ L' R
   struct termios setting;
' \( k1 J( p, c7 Q    fd = open("/dev/ttyS1", O_RDWR);1 K+ h8 I8 [: I: G8 a' M; G
    if (fd == -1) {
$ W( s1 @5 B0 c, f- M- K5 ]        LOG_INFO("open /dev/ttyS  failure ...");
8 }% h& d9 l  Y. d' ?        return ;
( p" n3 I/ Y- \- j    }
( S. h+ g1 U8 X  ~    LOG_INFO("open /dev/ttyS1  success ...");
+ I5 S+ N2 a8 L1 w( r8 Z    tcgetattr(fd, &setting);
+ U+ d( u4 {, v+ e$ R: [. ~    speed_t speed;
9 M) i+ U8 u; ~7 v    speed = btr;% t" v( Y3 _0 K( k8 b* c

$ Q) {: e" ]3 W( P    cfsetispeed(&setting, speed);
  J' v8 _& W" b. C3 a! x    cfsetospeed(&setting, speed);
6 _  d. Q5 J$ z  {    cfmakeraw(&setting);
: q1 A2 s4 b* e5 r! U    setting .c_cflag |= CS8;
' r2 H/ \: @) A5 A/ z+ ?    setting.c_cflag &= ~PARENB;
. b: R1 X- @: l* `$ d    setting.c_iflag &= ~INPCK;- K2 V, O2 T5 G" d% U
    setting.c_cflag &= ~CSTOPB;
* t, o. D9 w9 Z    tcflush(fd, TCIFLUSH);/ P* ~6 i5 t5 i% a% N/ C- q6 ^+ [
    setting.c_cc[VTIME] = 0;
, J* B( I- f6 B2 W5 e) y$ i    setting.c_cc[VMIN] = 0;0 u8 K8 [* H4 n+ N# G
    tcsetattr(fd, TCSANOW, &setting);
( ]6 Y/ x6 N8 v5 j4 R
8 f# q7 m% w; p    int ret;
3 \1 a1 M5 y; ^, `; f    char *buff = {"hello,485write ok"} ;
: @4 H; K; v( K$ k+ a0 ~( N    ret = write(fd, buff, 17);* ~& r6 {( z/ {0 c3 A5 L- s
( Z4 b$ e: g, _
    char buff1[256] ;0 d$ {9 \" }8 l1 W. U. A+ s+ _
    while(1){
( E+ S* J. h0 q, h
: G6 |. j' M8 t          ret = read(fd, buff1, 255);. H; x; Z, D# X0 J( i$ R8 F
          if(ret > 0){' d' z, h4 `1 X" G
( @8 b+ d4 ?  F( W4 H/ G, }2 e4 @
                     write(fd, buff1, 5);
2 S3 c& N' {/ {# Q9 N% o* H
. M/ Y) M/ p5 j5 }* C. l                      LOG_INFO("rs485 receiver ret = %d " , ret);
5 l0 Q' e! m# N' q  M, F1 |' I( r. B  C; ?+ |1 w: V
          }
  `+ o7 v$ U9 T! M$ D7 {- R, X5 j
+ D1 S: V0 w) t3 n, |8 D    }
1 S1 v# D3 b( P8 A  V+ e% S/ F0 A" a) F& W# N
   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?# S0 i9 T$ W) F) H3 b, K+ d

2 h  v& I& q* M

0 w5 V# ]/ a& {$ Q# `7 q% {$ M* Q1 y& a8 ~) M$ C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-3 12:07 , Processed in 0.034913 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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