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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

积分
1263
跳转到指定楼层
楼主
发表于 2016-10-8 12:44:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1 Z# v( Y) z( R) l6 u9 ~2 {
您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。0 S# N+ ^& Y3 i, a$ x' o
6 w) S) d5 H: c$ k
我的qt程序如下:
, g  ~+ @0 Z) S4 t" L   struct termios setting;
4 q: J3 k7 D& D    fd = open("/dev/ttyS1", O_RDWR);) e/ m0 h3 u0 U2 D( f8 a
    if (fd == -1) {
% S% G; K4 G. |        LOG_INFO("open /dev/ttyS  failure ...");1 C+ |- r9 z" w8 f) K  b, E; ?: n) D: z
        return ;2 D3 l# u, K) E* t
    }
& o0 j4 P7 T9 [0 ~    LOG_INFO("open /dev/ttyS1  success ...");
# m& A) S; g. `' v' X, Z# \    tcgetattr(fd, &setting);* x; x7 X' i. u' {1 V
    speed_t speed;; `" {8 T: J6 I1 A& ~
    speed = btr;
/ S' Q$ i! r( u) _: N
0 F& q, G; |0 _! z' l7 T    cfsetispeed(&setting, speed);6 n+ s; h2 E, P$ X4 Y  r
    cfsetospeed(&setting, speed);6 f0 b* u, ~6 @( _* B( }$ P; p
    cfmakeraw(&setting);
5 I3 }2 O5 @2 r8 K$ w, I    setting .c_cflag |= CS8;
6 b5 x# N% k5 l& y0 A) p3 ~    setting.c_cflag &= ~PARENB;* f, Y3 ?' L8 b/ g4 W$ o
    setting.c_iflag &= ~INPCK;
' x' i' ^# I1 i; \    setting.c_cflag &= ~CSTOPB;' H1 ^* m$ P* w6 G7 P  L% g3 n
    tcflush(fd, TCIFLUSH);; U2 J8 ~$ q" ]: X0 w; h: ~
    setting.c_cc[VTIME] = 0;
% w9 P% y8 {9 k" P6 Z    setting.c_cc[VMIN] = 0;9 I6 O, x, \& W, P* o1 J0 k# z
    tcsetattr(fd, TCSANOW, &setting);3 `2 @: r/ Q4 u5 [

0 x" a! S: l6 H/ `% M  a    int ret;
# h# G+ f' b( e  V9 `" K; s% T    char *buff = {"hello,485write ok"} ;
5 X( N5 X( S( V* ~  I    ret = write(fd, buff, 17);
# T# p& g4 x+ m7 _8 d5 M8 J9 G% B$ ]3 h- }0 b3 W% R7 N, K
    char buff1[256] ;
& X, y4 S. z6 \3 O7 u    while(1){
3 T* q, s) y% u) u/ N; i, S( R; z! v* }
          ret = read(fd, buff1, 255);1 B2 m! E( F" O
          if(ret > 0){
0 T; Z4 }* E  w, X$ L+ f' u/ ^- d: F4 j# m* R( o
                     write(fd, buff1, 5);
$ z9 e; n0 y8 \5 Q% k' g6 b  @
" q& o* u# f) @2 x/ T8 R                      LOG_INFO("rs485 receiver ret = %d " , ret);
9 G* I3 |. z. N/ v* V) M+ I7 u5 _; k8 Y* R  @: ^7 F: a: X
          }
1 o1 U" k1 ^. u+ r" u: _
2 Q( N* F6 y' I' G8 {2 a5 D    }! R3 o% v! p$ x  _

& i" h& t* w. |( M# d4 n% l   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?4 \8 r( a6 d3 t
, N& {8 }) O5 Y

  R" i* F6 b5 Z+ L, M0 B' P! i. h! |
分享到:  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 22:28 , Processed in 0.035968 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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