RS485问题 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

# y( C; k* y/ e5 g3 g您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。
2 e; G9 N0 X% G: P2 J4 `  q

# L  ?) h, g' g8 I我的qt程序如下:
6 c) w) G; @* s" L4 J  M   struct termios setting;6 d  A6 X; T: d$ {/ d; Q
    fd = open("/dev/ttyS1", O_RDWR);
) z  D! c* a1 r& {    if (fd == -1) {0 i, {" U6 k3 k. c
        LOG_INFO("open /dev/ttyS  failure ...");
& u3 A  m3 S$ f        return ;
2 _! r/ c5 p; i5 y2 j1 Y' U* x    }) X, U- P% @% G$ h
    LOG_INFO("open /dev/ttyS1  success ...");5 A  Z" ]* A) b2 d# `, [  L4 v6 X) u
    tcgetattr(fd, &setting);
0 \7 ~' [" s9 K8 U* f    speed_t speed;2 j0 M" p4 I4 h- @0 O% F
    speed = btr;# j  q# Y9 Y) w  t5 ]3 w
. ]9 Z; P' B: ?2 X9 k
    cfsetispeed(&setting, speed);  [2 i! E+ n3 Z3 C* V. w
    cfsetospeed(&setting, speed);) z9 M1 @1 X* }
    cfmakeraw(&setting);/ R5 Y0 V: v9 g. c7 {- q
    setting .c_cflag |= CS8;/ [6 ]& q( N* P
    setting.c_cflag &= ~PARENB;
6 K! y1 s, R/ l- f. |    setting.c_iflag &= ~INPCK;% O2 P& b$ x1 o: y' m
    setting.c_cflag &= ~CSTOPB;; m& v, R4 r6 L7 Q
    tcflush(fd, TCIFLUSH);
5 q0 @! Z6 k) ?( R$ W) H    setting.c_cc[VTIME] = 0;
7 a) V# ^) y3 f! l: q# ~1 F; `% d    setting.c_cc[VMIN] = 0;4 ]5 p' W( B3 [; \
    tcsetattr(fd, TCSANOW, &setting);
( G* f4 _+ t. G- m/ Q( @7 @% |9 N; e0 w, _) F1 k: I
    int ret;
/ W4 H5 q, x1 h' b) {    char *buff = {"hello,485write ok"} ;( _0 {3 t$ Y0 R* w
    ret = write(fd, buff, 17);
( {% {/ M$ ?" M
: J# L2 t9 c4 Z    char buff1[256] ;
3 J& a5 x6 ^1 O! S0 _) w9 |  ~    while(1){
# W( @# Y$ a( U# U8 i# A# }, Z9 _5 U9 n& A' L1 g8 y0 C6 `
          ret = read(fd, buff1, 255);9 G: I6 P, K; h0 T4 `
          if(ret > 0){& |' ^) ^1 J3 ]; J

* m4 }/ ^" x, `- z+ `( z                     write(fd, buff1, 5);  t. m* f) F3 A" A; ?+ B

. c' a1 g0 Z/ d7 K                      LOG_INFO("rs485 receiver ret = %d " , ret);- F, e0 ?/ t- [6 L+ f- n9 F- v
. F* A. m+ K9 |. d* n$ M. D
          }1 ]& H* f3 X# |  N' ?1 n: S1 {
& J2 Z/ W" Q5 _- g7 F# s
    }
. q% f1 J5 _3 J' H/ T6 C
7 [: z% ^  H; s8 L! L# i+ K   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
! ^7 K0 E6 z% y- Q

+ E6 q0 i8 l9 i, s' J! _3 J
. n  Z; `4 t8 F2 ^9 h
1 f# T5 r6 Z, m7 c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-3-17 11:17 , Processed in 0.036857 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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