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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

  C. {  K* L, U您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。! m* }" M* v# u+ ~0 d7 ?

# j: [* Y* m8 n, P  s/ C我的qt程序如下:
$ w$ [5 U" k1 Q" n' v5 `* l   struct termios setting;+ B3 j( c3 s! N! m% I
    fd = open("/dev/ttyS1", O_RDWR);" ~; ~6 [  `2 V% h9 A! \' c: T
    if (fd == -1) {
& N- P* N6 S. ^; e6 _& z" _! N        LOG_INFO("open /dev/ttyS  failure ...");
5 |6 \/ R4 R/ L+ v# [        return ;, P5 a; Q: C  M1 u5 U9 u
    }
) R/ l: c1 g. I3 v; k- ~    LOG_INFO("open /dev/ttyS1  success ...");1 f- ~9 ^. M* |" _6 `
    tcgetattr(fd, &setting);
* b8 n3 U. k; u" q- f3 q* Q    speed_t speed;
; Q5 ~$ U( p6 r: m" F. t  E    speed = btr;- o  X' E2 S4 H( _
8 T% a# R) E8 u7 Z+ D& L2 m
    cfsetispeed(&setting, speed);' q& p. ~% t' `# x
    cfsetospeed(&setting, speed);# p4 i( ~# ]3 m
    cfmakeraw(&setting);! a+ P9 {7 I/ \0 e
    setting .c_cflag |= CS8;( H; X. s& ?) B0 \8 V' k
    setting.c_cflag &= ~PARENB;8 p6 E2 }5 V" K, k5 C
    setting.c_iflag &= ~INPCK;7 k5 E* q  i' i' Z0 }
    setting.c_cflag &= ~CSTOPB;
- d) E/ r/ S! y' N4 K" a    tcflush(fd, TCIFLUSH);
$ ?7 H& H* [/ n% h; q- s    setting.c_cc[VTIME] = 0;% o. Q* B4 `$ D9 Z
    setting.c_cc[VMIN] = 0;
* h9 \# S7 v' a7 \" R    tcsetattr(fd, TCSANOW, &setting);
- Q: H# x9 M/ m5 T1 ~. l- n! F% Y
" m. S% M4 j4 D3 X    int ret;0 e2 |5 P' u1 Z% c. U
    char *buff = {"hello,485write ok"} ;
& W( ]+ N8 k" ?1 o    ret = write(fd, buff, 17);
7 i+ r0 `5 x! `9 [7 w( {. X# }3 @( P1 ?. _
    char buff1[256] ;6 @) _9 m( H( I/ Y* F  _
    while(1){
6 S& q$ Z! B& g
& N  y' b0 h; P# ~1 k0 q          ret = read(fd, buff1, 255);+ o+ ^% s6 ^( M( _5 W
          if(ret > 0){0 f* O5 f- d' I3 P% r. J

- y3 k4 O4 c: V  O                     write(fd, buff1, 5);
$ x* u4 R6 h- F5 l0 a5 R" I' z5 ~- B& C/ J+ J3 `' ~2 W
                      LOG_INFO("rs485 receiver ret = %d " , ret);
6 S1 ?% s( Y. o2 ^% \9 g' `  h; k) V2 d8 u' E2 y" e
          }) r/ v  `2 ^9 g6 L/ L. C
4 D4 E  A7 i8 w. K, x6 W
    }* Y# {) O! o" e7 z  Z

7 @1 s" F7 N) X1 G- V3 X   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?  y1 D$ Y# C! D3 J3 g' i' ?* n

' F6 c4 q$ ~3 P" j/ U, n: w
0 Y# }( u* B; b- N/ S
$ ]( d( i2 {$ i5 [
分享到:  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-18 21:00 , Processed in 0.041331 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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