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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

' e5 q" `0 ?; I2 \" L) h( o您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。
6 c! }* Q! i. T6 M! {

9 X2 Z0 P7 ~2 Q% y- D5 @7 P, Z/ h我的qt程序如下:' M- s. h( o4 M$ r
   struct termios setting;' c' R" z  L% _8 S, p
    fd = open("/dev/ttyS1", O_RDWR);
0 @! e0 q# C  v' k  l* K    if (fd == -1) {( `7 f, T. x# A+ Z! J. A
        LOG_INFO("open /dev/ttyS  failure ...");
! r' C$ s2 |- Y        return ;
' g9 D! ^) ~; M& g    }1 S. M+ Z/ K, O0 F. |. b
    LOG_INFO("open /dev/ttyS1  success ...");. V: ~- R& K6 p: D% k1 \
    tcgetattr(fd, &setting);
9 t0 P2 J! \' ]# }    speed_t speed;7 \6 {- L* E5 r, I; Q4 R/ |
    speed = btr;
: h; |7 J! I1 B) {7 E3 }' t5 u8 g  s& I) Y
    cfsetispeed(&setting, speed);
" v) U8 P$ q9 u- |    cfsetospeed(&setting, speed);
+ o/ c3 Q8 m( K& w/ i. }3 s+ \# W    cfmakeraw(&setting);& w" v. L* Q! ~1 \! u7 R3 ^
    setting .c_cflag |= CS8;' X% P1 a3 `2 T  [+ m, t' ^
    setting.c_cflag &= ~PARENB;/ ?/ d0 l( K/ S6 p4 w6 u
    setting.c_iflag &= ~INPCK;
+ J4 [+ a& R8 E. Q" w5 `    setting.c_cflag &= ~CSTOPB;, v/ B0 @/ v3 h. j9 i( w
    tcflush(fd, TCIFLUSH);
1 c4 @/ z% ]5 q! ^& P    setting.c_cc[VTIME] = 0;$ ?1 Q0 k4 ?7 C" r5 y
    setting.c_cc[VMIN] = 0;9 O' p, Y1 m5 O* d0 n
    tcsetattr(fd, TCSANOW, &setting);; s& r7 {' B. c3 K

+ v. p1 m( m4 _: q; n9 d, m    int ret;
: E$ r5 T/ P$ L7 x" k* }* A    char *buff = {"hello,485write ok"} ;' Q# |0 k# a" V0 ?* {6 k/ G" }. a
    ret = write(fd, buff, 17);
* {- n$ i2 d+ U. a/ Z
4 a' m1 |% T4 z; S; O6 D! {    char buff1[256] ;
3 O) E1 h( J# D6 J( l    while(1){, F/ O+ E. g1 ^/ c3 v! z
! |4 Y! {+ |0 i
          ret = read(fd, buff1, 255);
$ m% }' n+ w/ l3 n          if(ret > 0){  K- O% {8 j7 J( }
: v5 J; l% h3 L7 h4 a
                     write(fd, buff1, 5);$ l( L, W5 s: \8 H
; w1 ?8 P! @$ P7 O% m
                      LOG_INFO("rs485 receiver ret = %d " , ret);6 k( G6 c& d$ ]5 }6 G7 r

6 c9 B# Q3 _+ p2 b. @          }0 H$ S: q# c, E: W% t2 N

- `7 L) X# a8 Z$ g+ t# H+ ^3 k! Q' Y    }$ \: E7 q3 G& L  N! [  s7 q5 r1 p
+ c5 }! r" k  P. P1 g
   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?& y! z5 ^  Y2 \0 l2 K* i
7 l9 k7 Z' L8 M9 q- l8 S7 m* y. {
$ u8 t& c, I2 k8 L$ o
: e% F9 s) W; ^! R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-17 09:54 , Processed in 0.037308 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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