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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

积分
1263
跳转到指定楼层
楼主
发表于 2016-10-8 12:44:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
; k: c" p4 E4 x: }2 a9 U
您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。. t4 O" ^, T- s6 {/ I

4 a" R: x* ^/ n. a; X; V我的qt程序如下:! O- `7 I* _+ t% R& |% x
   struct termios setting;
9 F3 o* A4 O/ a( p    fd = open("/dev/ttyS1", O_RDWR);
$ H8 l, |2 N7 Q" h6 d5 b4 Y    if (fd == -1) {
% a" v- ?2 H+ F9 T1 r$ h        LOG_INFO("open /dev/ttyS  failure ...");% O/ S+ K' A( j+ {  n; r
        return ;
3 k- t2 A4 e3 ~2 L    }) h. g1 o& [9 e$ _% }
    LOG_INFO("open /dev/ttyS1  success ...");
1 ]' M8 `4 F) Y/ e# z4 T) b    tcgetattr(fd, &setting);7 l( W, b" \; w, ]
    speed_t speed;
  t2 P& ?  b0 m& d1 u) P    speed = btr;8 f2 w1 a; N: c, K4 @& @4 R
8 A1 v4 O- S: |
    cfsetispeed(&setting, speed);
" o7 |9 p4 `6 n' x1 l$ m- e% ?/ {1 G    cfsetospeed(&setting, speed);2 k7 U# A5 i+ ]: G' w, g: X
    cfmakeraw(&setting);" ]) q( a* O- g# S0 _9 W
    setting .c_cflag |= CS8;
8 D, B. j6 ?: S" ~, X$ k' b# A0 N    setting.c_cflag &= ~PARENB;/ l/ F9 Q  X4 {
    setting.c_iflag &= ~INPCK;- Q* P, z: P. ]! r5 t4 o. D8 R) f
    setting.c_cflag &= ~CSTOPB;
' y* B' @9 z& t) u' e8 x    tcflush(fd, TCIFLUSH);8 W) P6 [/ _0 S$ g, U5 M
    setting.c_cc[VTIME] = 0;
7 _4 Q# _& D  B4 E    setting.c_cc[VMIN] = 0;8 N. J" e' S2 n( a) A
    tcsetattr(fd, TCSANOW, &setting);
: Y2 L/ K- T: G2 T2 u/ B. |# `1 Z; w
    int ret;
- d+ h/ `7 t% g( Y. q    char *buff = {"hello,485write ok"} ;
$ Z  z/ [3 J/ L; y    ret = write(fd, buff, 17);/ u9 B, v. i8 t$ C0 e- V

, V1 S/ N2 x9 d; o1 Z9 J! Z    char buff1[256] ;. o/ |, t7 i1 P$ F3 O7 e: ~9 G4 v. ?
    while(1){
5 h& ^" A, m1 A) ~' ~* n# }6 }3 m, F3 a4 K( g" B  `4 \5 A: j
          ret = read(fd, buff1, 255);1 t1 w( ?) Q4 P$ ^6 y( l
          if(ret > 0){3 G3 O) j. _: _. x
# h) s  n$ w2 A" D) @  T4 N! V& H4 H
                     write(fd, buff1, 5);
+ {- ~/ @5 `! {- b) W( M# [9 q$ D2 f8 ]- c. X; {
                      LOG_INFO("rs485 receiver ret = %d " , ret);
+ g- c8 X4 h- L6 r, ~- P8 X: N- w7 M% u; Y' K* h, Q. j
          }  T) d. t, M# {9 l# m; l
! v2 X( q- e' E& {
    }6 m$ M. X. M4 _) p2 d2 ]1 J

7 Z7 k) x" o# C! c7 Z* d/ s* t   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?' t' U. [4 y5 L5 y6 N  |
, d0 b3 s" ]' a7 Z1 Y) Q! h' R
! p# l/ {( A7 [9 I' `) B7 v, ~3 S* }

2 F; o- i0 l! A, M$ ?# 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-1-31 06:44 , Processed in 0.040191 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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