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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

4 k7 b4 s* d% e% t: `您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。$ E& n% B8 _2 }- o; \8 w
% m+ b+ h( u* b3 @
我的qt程序如下:0 F3 \* G+ [0 s% z
   struct termios setting;
7 m2 \0 I  n! x$ r    fd = open("/dev/ttyS1", O_RDWR);% S, c7 x( g0 m+ j/ O+ g, e+ R7 v
    if (fd == -1) {
+ T- v8 p! j( \' A4 q$ X* ]( E        LOG_INFO("open /dev/ttyS  failure ...");/ Z8 @! u4 {5 B- a& Q2 M' G
        return ;- I$ ]+ i2 [; w: G% d) q* w
    }( h. b- K' `6 X4 Z. i& t4 [
    LOG_INFO("open /dev/ttyS1  success ...");. F$ ^4 S  Y; |" [( k
    tcgetattr(fd, &setting);0 `  U9 k2 i2 `# s/ V- K8 `6 \7 t9 T
    speed_t speed;  T) a+ M9 G( f( j5 G( }/ y9 l5 ~; P
    speed = btr;
$ m7 t) W+ G0 m/ L/ m! @" E8 M. m3 _3 t* E! w% c9 N
    cfsetispeed(&setting, speed);' _. V& }- z4 s
    cfsetospeed(&setting, speed);6 X' Z" y. @: t
    cfmakeraw(&setting);$ g4 G4 v% ]# a- K; H9 A5 z
    setting .c_cflag |= CS8;7 n& Q5 g+ f$ ]1 h. A# h
    setting.c_cflag &= ~PARENB;  ?0 g# I9 y4 K/ w7 x
    setting.c_iflag &= ~INPCK;) w6 B2 Z) ?# \, ]3 a% a
    setting.c_cflag &= ~CSTOPB;
8 c1 ~' ?0 C# Y" \+ x: m$ G! J    tcflush(fd, TCIFLUSH);+ P! M3 v5 c3 }) X& z
    setting.c_cc[VTIME] = 0;
- H: k5 R1 Q% k    setting.c_cc[VMIN] = 0;
7 t$ n7 X, l+ M2 m/ _    tcsetattr(fd, TCSANOW, &setting);! m  M' S* M, R; C& v

! k6 U$ _* W' X- F0 c- }    int ret;% g0 p* B7 p4 o! A
    char *buff = {"hello,485write ok"} ;
% T3 f/ y2 x6 ^0 V) _; H    ret = write(fd, buff, 17);
, K8 ~2 \. A0 U  ~
8 S& W' t6 V. r# R5 Y0 q- Y, g5 L    char buff1[256] ;
7 ?, r: Z& i' U9 D: @/ @/ v: v    while(1){
0 c' t5 H  ~% S8 i" f0 \. l/ k4 [8 L9 |  y4 F
          ret = read(fd, buff1, 255);
) m. k; z% r% J# z' X+ T. W/ M9 }          if(ret > 0){
/ B& T  F/ s- B+ |: z1 W1 g
6 H2 z/ U( M6 Q6 H' Y# f# v                     write(fd, buff1, 5);
  D  g9 f/ O6 m2 h# x# X+ j1 _( M8 \# n  L- R* W/ m5 D
                      LOG_INFO("rs485 receiver ret = %d " , ret);* {. y- b( b0 T  a# J' Z  G

3 ^9 K! U& `/ o) X          }
$ ]) G; k; v- M1 J
% G3 I/ U7 k3 H' a    }0 f, A* t% {' E& T7 v
9 ~* q, x- X+ g" `
   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?6 z5 m" D7 E: d0 D+ R
$ S+ ]( t% z2 e8 u( D5 y: j' _! `
- B& v, A9 V- ^) e
+ L2 j# h8 e8 j; G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 00:38 , Processed in 0.036147 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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