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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

积分
1263
跳转到指定楼层
楼主
发表于 2016-10-8 12:44:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
6 U' r6 T! R- p0 f' F- C: l
您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。7 K. d7 F' n: H5 N! F; A

+ P9 }5 e& F; y我的qt程序如下:
+ ~1 B9 D6 C) Y6 Z) @, e0 s   struct termios setting;
" ?$ q# t1 r$ B4 T$ U  Q9 z! |0 o1 j    fd = open("/dev/ttyS1", O_RDWR);* p, ]7 q( v% ], G9 S- C1 V- }1 ^$ \$ s
    if (fd == -1) {
/ e+ q! n8 N( Y        LOG_INFO("open /dev/ttyS  failure ...");, i/ U: g+ k7 X4 D2 r0 z& L
        return ;$ H+ @7 U- K" S6 J& A
    }
' M6 P6 b/ o# f3 a    LOG_INFO("open /dev/ttyS1  success ...");. L- k, _' F9 t% K8 ?3 A
    tcgetattr(fd, &setting);
) ^+ R0 _8 a9 B6 c0 `# X    speed_t speed;
8 }% @5 O1 @6 `3 I    speed = btr;
: M; O# b& U, T0 j- |$ V; s. S: E
, ?. J$ |  I+ ?7 C3 y    cfsetispeed(&setting, speed);) `; s" {& z' V" M. S
    cfsetospeed(&setting, speed);
& u3 ?# g  R& F3 c    cfmakeraw(&setting);9 N6 n6 Y% L7 `" w4 Q
    setting .c_cflag |= CS8;, W& Q# G4 s7 D8 e' x- T) [! n) m& {
    setting.c_cflag &= ~PARENB;
/ a1 k* b2 X% H2 {    setting.c_iflag &= ~INPCK;
2 {/ V$ n' p+ ]5 F- _7 t    setting.c_cflag &= ~CSTOPB;
$ ]2 |% f9 H1 r4 N    tcflush(fd, TCIFLUSH);  t6 m9 b# g8 x5 i; }  H. H& G9 m
    setting.c_cc[VTIME] = 0;
0 n3 I$ a& W# G: ~* @    setting.c_cc[VMIN] = 0;
5 q$ K) A. M! _. q$ g; l    tcsetattr(fd, TCSANOW, &setting);* l5 C$ U3 {( }( L; l1 F
; q6 V4 e7 N+ f
    int ret;
% F: Z0 l5 K: n/ u5 V! C- z    char *buff = {"hello,485write ok"} ;
5 x# N1 |" p' m2 N0 b6 b    ret = write(fd, buff, 17);# @9 @' Y8 W2 D; x
% S: ^4 k; z, _, W
    char buff1[256] ;
) l8 ?( f. R5 F8 S    while(1){
1 e! l: m. Z: D+ Z0 s! L
) k; b5 {6 ~5 [' {4 V0 s" y2 ]          ret = read(fd, buff1, 255);
& {3 p7 a' F+ K4 ~1 M1 L6 f" F          if(ret > 0){) A4 d7 n  d8 s# P. \2 H1 X) S$ C
: k- _: a! q* E; R! O% v) M
                     write(fd, buff1, 5);
7 I: b, l3 y. @: v+ s0 d% W$ s& I
. V) S/ C2 f% z0 q. B7 u                      LOG_INFO("rs485 receiver ret = %d " , ret);! n/ g0 q' g7 |. q3 C2 |# g

% J7 |! i0 u: `+ L4 E/ z2 i          }. b: ]2 T7 Z! W9 p
# p5 j% L; i3 d4 O9 `2 Y
    }1 z. g. a) x+ ?  W; k5 d

: ]9 g! a3 l7 {4 V   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
; O% H5 s  e% Z$ O; S

4 J" ^* G% l( I

* L: [4 H) d# p
8 z6 y8 n& c3 U4 p. D- a0 n- J9 G. V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 20:06 , Processed in 0.035712 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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