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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

积分
1263
跳转到指定楼层
楼主
发表于 2016-10-8 12:44:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  ~: [& n6 R2 b9 z
您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。$ N2 m: N  `4 L( b  K% b$ |

) ?8 n7 h' u0 _1 I0 Y" d" v我的qt程序如下:
* R4 t% j( s& {9 s% P. U   struct termios setting;
# M) p. u  _0 ]* B* [  R; U0 A    fd = open("/dev/ttyS1", O_RDWR);
" N+ g+ L/ h! F. N- L" n  J: F" X    if (fd == -1) {; t- p( ]+ D6 ^1 j
        LOG_INFO("open /dev/ttyS  failure ...");
. |' Y; o8 I+ ^9 y8 ?8 W        return ;4 V( m, g* B# [# B9 ?
    }2 `2 H3 J0 L' m5 ~7 P6 t# G
    LOG_INFO("open /dev/ttyS1  success ...");8 X' e" Y8 ^& [5 R+ k& \$ F7 G
    tcgetattr(fd, &setting);
  u2 j+ o2 R; k* R    speed_t speed;
2 T: J6 `5 K: V0 \3 S3 m2 C0 I2 }    speed = btr;* `. x1 m5 {# L' g
3 {5 ~* V/ G* y2 O1 `
    cfsetispeed(&setting, speed);
) f% y. ]: {  r  d    cfsetospeed(&setting, speed);0 A8 r, U7 ^1 T7 ~5 ]0 m
    cfmakeraw(&setting);
" y1 t: ]/ P$ ?    setting .c_cflag |= CS8;. \7 U9 S* g5 B. S2 ^7 n
    setting.c_cflag &= ~PARENB;
! l( R. H" K- d) Y) q" V    setting.c_iflag &= ~INPCK;
) {% r* c5 y) z    setting.c_cflag &= ~CSTOPB;
1 y; M$ e! D* o" r! K    tcflush(fd, TCIFLUSH);; ^. P% {$ o; J7 s; G- J
    setting.c_cc[VTIME] = 0;1 o/ f* e/ d5 h1 O8 J3 |4 z
    setting.c_cc[VMIN] = 0;# }3 N6 X0 G9 K9 ^" @: N
    tcsetattr(fd, TCSANOW, &setting);+ W# L( G1 o. o

% L; o1 Y8 h. [$ m    int ret;
* [" v: S$ [7 F    char *buff = {"hello,485write ok"} ;, h8 h. q5 y+ v+ m1 L, t3 S
    ret = write(fd, buff, 17);
. i( S: D* f3 B$ m
9 F! c5 }: X6 x$ h6 F- W- P3 h6 q    char buff1[256] ;, x) ?, Y. w6 `6 N
    while(1){
. O/ N3 @# V7 _& s8 o+ }$ a3 D! N6 u: p3 A- L( B- ~6 d/ J! [7 T
          ret = read(fd, buff1, 255);
; L3 {9 K, ?! I) j          if(ret > 0){5 s9 F" a7 s5 i
4 o& w  [, ]2 U7 y! q7 a$ r% M
                     write(fd, buff1, 5);
/ [- ]2 u: y* {2 y  R" V: R" Q9 w1 Q* s3 d
                      LOG_INFO("rs485 receiver ret = %d " , ret);
5 j* v* M; e5 u1 j4 y" c" s6 q2 W0 p' }
          }; n: ~% B% e0 Z6 w5 m

* p1 @2 z8 ~, a: ~    }
1 ^6 H8 T1 a# t, p3 N7 ]1 e$ Y8 @4 a4 \. g4 ?; I- y  b4 K" N
   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
" W1 D) J, [/ Y% d

/ a& R) _. i6 `. c

# S) ?' C8 b6 }4 ?- N: k0 ^, `/ d7 {
! D4 y! q0 Y, c8 F7 t
分享到:  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:20 , Processed in 0.034923 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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