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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

7 |) Z5 H0 g, i  z" Q  U+ E您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。' G' k1 c# M- G, [; \

  {  \8 [; S4 J! a3 r  a5 T4 n7 H我的qt程序如下:; d( g( Q8 U  f( _
   struct termios setting;0 E1 W0 y2 N4 L0 R
    fd = open("/dev/ttyS1", O_RDWR);0 [0 J) |1 r! E5 t) _% d# E  ~1 j3 E
    if (fd == -1) {
- G$ `( ]; q2 P: \7 t        LOG_INFO("open /dev/ttyS  failure ...");
* \& J# e0 `& `3 K. ~        return ;
8 ?0 T, L! C1 O1 m2 k$ h    }8 u; F! ?2 e6 s+ O
    LOG_INFO("open /dev/ttyS1  success ...");
- F, a# G! |1 B  l3 N  S5 I+ D; E    tcgetattr(fd, &setting);9 b/ \+ l) Y$ W1 V) C7 g6 Y
    speed_t speed;
0 O: f' v1 s1 o% d8 |8 P    speed = btr;8 u$ ]/ `$ R5 i  j9 |* B( Z" }

0 A7 Q$ n7 k9 K* I    cfsetispeed(&setting, speed);
, u# Y$ }7 e3 K+ g* ?. k- R    cfsetospeed(&setting, speed);
0 ^9 v: b4 w- v$ @0 ~1 `4 [1 U5 z    cfmakeraw(&setting);
, h/ X9 e6 ^- P! r5 b' q9 Y    setting .c_cflag |= CS8;
/ T# B, T7 a4 D" A; |    setting.c_cflag &= ~PARENB;
  a) |, T' G* J; A1 W; s6 V    setting.c_iflag &= ~INPCK;* f8 {0 ~* h5 j% N; g* Z  {
    setting.c_cflag &= ~CSTOPB;9 q; f) S# s: V3 s
    tcflush(fd, TCIFLUSH);
7 l0 a5 m+ `4 d9 L* e    setting.c_cc[VTIME] = 0;; [3 T& `! ~2 l' I! g
    setting.c_cc[VMIN] = 0;% f# E  L  h9 U/ _7 g6 @! e+ d2 i
    tcsetattr(fd, TCSANOW, &setting);' \5 z) C0 v' }. r" D, c/ H

9 D0 @5 r; @$ `$ w$ C4 Q    int ret;
; d2 a5 X4 e. x( c# S/ T0 H. N    char *buff = {"hello,485write ok"} ;) r" a+ D/ s+ f. g5 W3 \9 j
    ret = write(fd, buff, 17);
( J6 z% P1 s3 ?; _5 M! }& X; q3 b" ^: C+ ]
    char buff1[256] ;5 y# U/ X' y: B# w5 d% V% i
    while(1){3 `& i+ U0 V4 w

$ y, @5 v  R! [# r8 q8 ?          ret = read(fd, buff1, 255);; G! {/ L7 ]  J& {
          if(ret > 0){
& W; S' B* }5 n( K+ n( k/ c
; A) T6 v1 T! c2 [1 G  e# M. B+ p                     write(fd, buff1, 5);0 w3 ?& i5 n: o! Z; A+ b4 |2 N

  D+ u9 |6 ?$ n' g- Q" G' j                      LOG_INFO("rs485 receiver ret = %d " , ret);
. \% I2 H6 q% N
2 j, n3 A" w% r" s" f3 C          }
, ~9 u1 B( [4 o2 h0 p' q' r( m7 ~2 W0 T$ ]7 U; q2 O- ~
    }  {% x4 w$ E/ k0 G# ~

" j/ g+ A5 ?; f- x   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
; y# q& C2 g$ ^0 C4 L" x2 c

5 e8 s" s, r' _: A

5 a' p( P8 U' ~% o# s
8 f) i5 ]3 O% {' r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-19 00:00 , Processed in 0.035391 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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