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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

. L, y$ n$ U  @, e  R$ Q1 ~4 t您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。
# g# s* R5 N% O5 B* M7 }$ ]

& I) j/ r: K3 R+ E& Z3 a, M我的qt程序如下:4 e7 ]  S* e9 ], f7 }
   struct termios setting;/ I7 J6 g, Q- b+ R$ a
    fd = open("/dev/ttyS1", O_RDWR);( Y( s* f# Y  i7 i6 F1 ?
    if (fd == -1) {+ f! C% Q. q% }1 U8 H" P
        LOG_INFO("open /dev/ttyS  failure ...");" x1 Y$ Z1 r+ R0 o+ Q; x
        return ;$ O7 D8 i- A5 \4 y/ {
    }$ m. d! p# q! `( I  p
    LOG_INFO("open /dev/ttyS1  success ...");
3 b/ y( X4 S. P2 P6 Z1 Z$ |. g( _( z    tcgetattr(fd, &setting);" k3 R$ ]* E$ @8 `9 V8 @
    speed_t speed;  D: O  @0 o! E6 U3 h
    speed = btr;
' Q" U1 a) D3 \  E: H& X9 S
, L1 I. B8 w2 |9 v    cfsetispeed(&setting, speed);
* \4 _1 X7 k! c1 J% h6 {( t7 F    cfsetospeed(&setting, speed);
4 g) c; A2 B! f$ S3 L8 `$ ]    cfmakeraw(&setting);
3 j2 k0 a6 q! s# c" e    setting .c_cflag |= CS8;. @7 c4 \4 m# c& b
    setting.c_cflag &= ~PARENB;# b- s9 M  Y- \7 @) [' e, R
    setting.c_iflag &= ~INPCK;
/ Y5 N* B9 J( O! U/ E# M    setting.c_cflag &= ~CSTOPB;
; N6 U, Z6 @8 ^& o4 x    tcflush(fd, TCIFLUSH);
1 B1 r( }" _* ~5 c# Y4 j    setting.c_cc[VTIME] = 0;& j: |4 a; G  `: _2 |% @
    setting.c_cc[VMIN] = 0;6 N) u! ~9 r$ b. [% O" l/ h
    tcsetattr(fd, TCSANOW, &setting);3 B8 p- [# t' j
" Y  r5 k# i3 J/ r; F8 H
    int ret;
5 r- U' N, f, A( b' h    char *buff = {"hello,485write ok"} ;, N5 O4 R0 ]) b) @
    ret = write(fd, buff, 17);
  \1 \6 p! \! ~2 w$ q# G6 g( h
2 F7 q3 B# n( r8 F    char buff1[256] ;: x+ P, F* t7 ^. y
    while(1){
. I4 h+ F# V0 c* @! K# F
" `  A0 H) X% ]( L: H3 n. {          ret = read(fd, buff1, 255);
/ T2 X- f- u8 [          if(ret > 0){
; {0 p% H0 B. z+ l4 l8 Z
4 a2 K9 U: G* j$ z* o1 B% W# b                     write(fd, buff1, 5);
# d$ c+ R' j6 `: L
; Z& o% F: ?5 X/ @                      LOG_INFO("rs485 receiver ret = %d " , ret);
$ b3 x# v0 J7 @2 t2 U2 X! j9 j0 m' O+ q4 ?( E/ f; T8 E
          }8 d- J5 l# ^; u0 Z

2 V2 C, B' P) I6 m) Q3 `' R    }* z4 u( D6 `+ Z0 t& P9 J

1 i( M1 K# t% Q$ l; h  Q2 k6 |   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
1 D+ N( I0 h6 E3 Z% I7 ^
2 E& ?- v% ]1 j. v
. P" @- f$ o6 Q5 S! K5 z
" |3 a9 ~6 m6 I+ d0 ?1 V9 s0 b" e# i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-16 12:30 , Processed in 0.037350 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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