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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

0 w6 Y' x( g$ V您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。/ h+ g. S- n  n! M* G
1 Y( Y) I" E8 _
我的qt程序如下:
" ?# l- E( |- f9 P   struct termios setting;# U* x- z/ z' Y+ \
    fd = open("/dev/ttyS1", O_RDWR);
) X$ [% y7 A/ n' @: d" V& b    if (fd == -1) {
, l& o' h* Z& m4 J; q        LOG_INFO("open /dev/ttyS  failure ...");( A. k7 L- i$ R1 D
        return ;
4 X1 _3 {8 T6 H    }% b, d) p; G) ~1 w: Y* R
    LOG_INFO("open /dev/ttyS1  success ...");/ V* j( D, e# u4 c! b$ z$ `
    tcgetattr(fd, &setting);! |; W) a' V( Q  \- U+ v" }
    speed_t speed;
, b! U: c  N) \+ X5 y7 h5 S2 n0 E    speed = btr;
, R* O# h; z4 x6 v- E3 }  ], Q" E; j& w& `+ k# F* \; m7 B% J
    cfsetispeed(&setting, speed);
( P0 _4 w! H  c4 V- |6 b    cfsetospeed(&setting, speed);
/ [  T9 C6 p, u' {2 W" W! `, E4 P    cfmakeraw(&setting);, T' P. I% N2 t; C4 P" b
    setting .c_cflag |= CS8;
# h! v5 ^$ E/ R1 k) u% b    setting.c_cflag &= ~PARENB;; g8 K2 q+ e% m2 Q, c& A
    setting.c_iflag &= ~INPCK;% J/ @: |" \+ q$ u
    setting.c_cflag &= ~CSTOPB;
- V& P9 F  t& ]* E4 K2 A' c    tcflush(fd, TCIFLUSH);9 c: e$ v# ~1 \# P, @; @$ p
    setting.c_cc[VTIME] = 0;
( z* F9 [4 C; T% X5 Z. ~    setting.c_cc[VMIN] = 0;, c5 P% }3 s% d9 g6 x
    tcsetattr(fd, TCSANOW, &setting);
3 P7 [; i/ i; f  H7 V* a) E% \
9 @$ P6 c, f: l+ ?    int ret;
% @! Q3 b9 Y* Q$ u    char *buff = {"hello,485write ok"} ;
! D9 g# w+ a5 r  v8 D: z    ret = write(fd, buff, 17);
; _  h  n/ N' L" J4 _3 Z8 k! L1 Z& C  B- ~- V
    char buff1[256] ;
3 I- D' |! U5 p: a: s6 `" y    while(1){
& X  k$ C7 [3 G+ ]1 I, P- M" Y  s' k4 v/ y( n: z1 C6 r
          ret = read(fd, buff1, 255);! B$ B' F2 n) K& F0 k0 t4 ?! N
          if(ret > 0){; R0 V" |! ^1 h6 Z. L

1 H- c( s  ?6 T& R5 Q+ p                     write(fd, buff1, 5);
, P8 H( o' Q& i  O# o  Y) i% ~3 s( M
3 E- @$ |5 X6 E* L* M4 ^8 L) Y0 D                      LOG_INFO("rs485 receiver ret = %d " , ret);
2 B' _# k3 ^! L! T0 ]" ]# C. }4 Y5 g# o% O
          }3 c; b2 W2 O' G6 I6 D# S; X$ P

$ M4 b( E+ l  ]' W7 G  {% `    }
3 m( y. a+ g0 m" u
# l; p7 C* K3 y& Z- o9 J8 J   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?% }$ S+ `7 c* n
9 [6 h% V* v' T( C
: f+ G& @8 d: z: t  O: }& p& x' ?2 A/ V
" x2 n4 {! ^* G& x5 [8 {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-31 06:43 , Processed in 0.037683 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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