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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

9 O1 r1 r7 v+ Q2 d; D您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。# i: [* Q' C3 t  u

' _0 r0 Y; @' K$ M5 l) I我的qt程序如下:
% f; W. z# K5 ^5 u2 }% p7 U9 _   struct termios setting;
& W' z) |4 S% O9 G    fd = open("/dev/ttyS1", O_RDWR);3 N( u! Y' N1 W6 Q/ n! K1 v
    if (fd == -1) {+ _5 H/ i+ I$ i, ?8 A' @
        LOG_INFO("open /dev/ttyS  failure ...");8 N1 K& L; _  b! V4 r" U5 }) b
        return ;
4 d. r4 c- m& V: n& A6 s$ e    }* B( O* w* ^7 a3 Y/ o
    LOG_INFO("open /dev/ttyS1  success ...");: e1 F# x  S# o( |5 r8 e9 a
    tcgetattr(fd, &setting);- P9 P& e: w$ P6 I' T# g. C$ q" B% I
    speed_t speed;; F1 ~8 Y0 g/ n& h+ [
    speed = btr;
5 ~; Q5 ]2 N; X7 c$ s) Z. v
" @$ i5 h+ X5 ?    cfsetispeed(&setting, speed);5 w+ Z0 y1 _# `
    cfsetospeed(&setting, speed);
9 A& N7 {, X9 V" Z! h5 N) ~& [    cfmakeraw(&setting);$ M7 N( J# r9 {2 d% ?, }7 [
    setting .c_cflag |= CS8;
% b! I9 g$ K% v( B  [5 Y5 U    setting.c_cflag &= ~PARENB;
# w2 }9 Y* d* e  x4 ~0 X: M    setting.c_iflag &= ~INPCK;
- l/ u( J" l7 C( x7 T1 @5 }2 a    setting.c_cflag &= ~CSTOPB;6 l8 a! p% c4 V
    tcflush(fd, TCIFLUSH);
  S% r" c4 N; J6 i! B7 e& `    setting.c_cc[VTIME] = 0;
+ R, X" ^& b% N    setting.c_cc[VMIN] = 0;* p  C  _, I0 D# X& d
    tcsetattr(fd, TCSANOW, &setting);' Q* j# I' _9 Z/ f% I1 s" y6 P; _2 c8 h

9 P$ y: Q, q* u: g: I8 M" N    int ret;
: ?4 m7 A7 n  w/ C+ d, E    char *buff = {"hello,485write ok"} ;  o& W- a& {% D5 N) u# }
    ret = write(fd, buff, 17);
2 }1 w) [2 `( q: \# I; |8 C2 D+ M5 R+ R$ Y( Q9 X
    char buff1[256] ;- Z  `) M* l) l$ A# T
    while(1){  q8 ?7 x( b0 w7 g1 Q
1 `7 `' [, l1 h. Z" p
          ret = read(fd, buff1, 255);
# j0 y* q. M: F          if(ret > 0){
; q, M" T7 D- E; `- w, f2 A
4 ^  L% V' z' m- v4 {4 Q5 H                     write(fd, buff1, 5);; u) e/ q% O) v1 W% P
! P* ]1 Z! ~( v. I' A
                      LOG_INFO("rs485 receiver ret = %d " , ret);: X  k- v+ X8 H6 ]% e) q/ B

; g8 D4 R7 [+ g4 Q' U( w% Z9 a          }% O: `6 D/ [4 V1 c

/ C& d2 ]4 ]4 }6 p! G" y3 C- r    }
- G5 _7 L: U- B4 m0 o, p
# h2 s9 R) Y% X; e   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?8 i2 Z) [3 B. D: I( I2 k( H

% S: L: F& ~4 f! k2 S9 G- g" n
9 m  x  w6 Q+ g' b: r

& y4 G" ?/ h3 |, u) e3 m  P
分享到:  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-4 03:01 , Processed in 0.035962 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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