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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

积分
1263
跳转到指定楼层
楼主
发表于 2016-10-8 12:44:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  e6 Q+ |0 M7 p- F6 T; u7 P
您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。
. o+ E% g) o$ Q: M6 u2 J
3 P0 H5 b  p$ B% O6 }5 F6 {# |
我的qt程序如下:
, _4 R& Y: H4 Q$ q- t3 ~3 k   struct termios setting;8 n5 k* v( |! x! R- j" {
    fd = open("/dev/ttyS1", O_RDWR);
6 ^5 O! u# |5 z% ^: ^$ }4 z1 E    if (fd == -1) {
3 E: b1 S3 v" f/ R: h        LOG_INFO("open /dev/ttyS  failure ...");6 F3 T/ M: B) r6 Z
        return ;# w) d; M6 V. }# P1 a
    }) W$ W; X: D9 M* N2 K
    LOG_INFO("open /dev/ttyS1  success ...");. l) h7 }' a: J+ j7 [/ f& b
    tcgetattr(fd, &setting);: E3 \$ \. V6 [+ f! C, i# N
    speed_t speed;
* M  n' \7 G- p- `5 h) o    speed = btr;
& M2 C: V/ [$ }  F  `  D$ f6 l' S  M% [) y* K) k+ `
    cfsetispeed(&setting, speed);
. I3 S* k  \. f  j$ q: y    cfsetospeed(&setting, speed);
% t6 W0 n! }/ h    cfmakeraw(&setting);/ b- s4 ?  ~, Q6 K
    setting .c_cflag |= CS8;: E* k7 \2 m: \; |
    setting.c_cflag &= ~PARENB;, o0 M& U! h% l) O  A
    setting.c_iflag &= ~INPCK;
& W+ r( z0 L1 k6 W7 P    setting.c_cflag &= ~CSTOPB;
/ w7 x/ _& q5 V) D8 _* @4 O    tcflush(fd, TCIFLUSH);' o* u+ k+ N  ^2 A
    setting.c_cc[VTIME] = 0;5 W: {+ J  K* b0 _4 t1 p2 G
    setting.c_cc[VMIN] = 0;9 ]9 t" [! l" D2 K0 ]; _2 Y" W# }
    tcsetattr(fd, TCSANOW, &setting);
( H0 ?1 N2 ~) y: m% ~1 `3 ?& P3 q8 Y% @9 D% J* x
    int ret;
& H, B2 W# ?# K    char *buff = {"hello,485write ok"} ;7 A: G9 y4 {, D8 |: u% s
    ret = write(fd, buff, 17);: u( a' @% r, Y4 C* Q
# O7 O* ^) @' z2 w/ j
    char buff1[256] ;5 ^; m* f* u& C: o9 `1 K# Q
    while(1){
2 m( h# T7 s3 p4 V# T3 x  x" K, D+ \) O( c% g/ T9 e; R
          ret = read(fd, buff1, 255);! a1 O1 R' l9 N6 L, a3 r
          if(ret > 0){9 u8 _. D0 s- O! ^; T* M8 n( p

, ?# w# \- K+ @$ H5 z* H0 h                     write(fd, buff1, 5);
6 v% o7 O  B9 }- o6 A0 P3 X) i/ \% o- Y9 J9 G: C& `
                      LOG_INFO("rs485 receiver ret = %d " , ret);0 B0 A2 `2 w6 f! w9 w

' p$ v  [& v  h& }& s          }$ e. L! r( I8 h

6 Z4 s  X8 O3 ?    }
( c3 @! {7 ^  k$ Y" z- B
; o$ g  U( u6 m; }! {8 b; u* N   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?( y1 e  L& G9 M: V- z

/ s5 H! _7 v2 c2 Z2 b# d

$ t3 W6 w, i$ x3 P* G/ n* `# \& d4 o0 `4 p% |: H* e# c2 }
分享到:  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 23:50 , Processed in 0.038309 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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