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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

% u! p3 a- N6 s" G' K' I您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。  b' [' B$ K% p9 R/ B1 w" t+ x0 s; L' q

3 h4 s5 q5 ?( q) `% w7 f/ V我的qt程序如下:
5 L: C) Z! C9 b+ s   struct termios setting;
: v2 S* L0 o# b9 j* g5 G2 z    fd = open("/dev/ttyS1", O_RDWR);) u5 K/ u! ~  r
    if (fd == -1) {3 q6 a7 D7 ]- a5 h# W* P
        LOG_INFO("open /dev/ttyS  failure ...");  _) f; C: ]2 v! z7 r! f- z/ C
        return ;
' f2 B" [0 U' D* Y- H4 V, l% D* z    }8 T3 q" S$ L- ]
    LOG_INFO("open /dev/ttyS1  success ...");* s4 b/ G4 {% i! G5 G
    tcgetattr(fd, &setting);
9 O( x: w; I" I. b    speed_t speed;
5 V; b& b/ l+ s7 Z- V    speed = btr;
- c" [" l% u  w- h7 m' Z& I4 q' U; y0 |4 W
    cfsetispeed(&setting, speed);  ^4 K$ e& e1 L' q. e5 v& N* k
    cfsetospeed(&setting, speed);
; c% S' m0 X: A  T0 E3 Y* e5 q    cfmakeraw(&setting);8 W3 T$ C* B( r! ?+ ]9 P7 h
    setting .c_cflag |= CS8;
; s( R) \) d/ F1 i6 \: q8 b+ M    setting.c_cflag &= ~PARENB;9 e6 U, \9 L' T, n; i* a( a
    setting.c_iflag &= ~INPCK;
8 A2 Q/ q  C. F3 s    setting.c_cflag &= ~CSTOPB;6 r% |+ K' c# A2 k
    tcflush(fd, TCIFLUSH);
( [- \5 w- D9 U" Z% e. J5 a    setting.c_cc[VTIME] = 0;+ M# U4 Y( U9 c: G  F. _" m
    setting.c_cc[VMIN] = 0;# x/ h- ]! m. R8 m2 J( \1 K% b
    tcsetattr(fd, TCSANOW, &setting);2 h2 ^( S2 c7 Y: ]7 g1 d- [
2 A  k' a2 O. h. F
    int ret;
8 ?) V2 ^: |% d" u$ \) Z& S# x    char *buff = {"hello,485write ok"} ;" ~6 c! u0 E, S8 H
    ret = write(fd, buff, 17);
& J. W! v3 h0 G  E2 P2 O
: U  `. U  K3 z( N# k7 ]    char buff1[256] ;
& X+ t. z  f8 W/ ?" c" p    while(1){
# r- |. D- Q# y7 E* b* h5 o( G( Y( p) ^
          ret = read(fd, buff1, 255);: W5 U; n" |8 B1 o2 N! D. ~
          if(ret > 0){7 ^& C* M$ O7 Y8 q) b: E4 ]* @
7 |7 d4 z3 }9 z4 w( D
                     write(fd, buff1, 5);$ Y* b1 n# n. s6 E8 f6 s

- N  I4 _8 x, d4 S0 k8 x                      LOG_INFO("rs485 receiver ret = %d " , ret);! w1 `$ m2 a5 D0 z
* t- Z' o( o$ A
          }
+ R$ [6 \9 T0 t% r7 p0 ^. ~$ `$ c2 g* K. \5 [
    }' Q4 b8 @% C- j- |4 S
& M. A: A. u! e' f  J) T7 m
   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
7 ~  n1 [7 h: `9 D) T0 b7 F0 x8 B

" Y' @( Z& I8 Q1 [% Z5 ?' k

" L0 u# ?9 M& c% d0 E8 J2 S4 o& @4 I& u- P* a0 D& O) |9 w) X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-17 19:48 , Processed in 0.036457 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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