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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

积分
1263
跳转到指定楼层
楼主
发表于 2016-10-8 12:44:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
: J3 s" D) q7 B0 {# P6 q; ^
您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。
8 J. Y) c6 M. ^% j. Z$ w

  F4 Q# \# \* t5 k: G我的qt程序如下:% U2 Z- }& x5 S
   struct termios setting;
' j! J! M7 r8 a! r" w; U    fd = open("/dev/ttyS1", O_RDWR);
5 W4 Y+ \6 o& l2 S# P5 E) b    if (fd == -1) {
! q0 E2 N8 n  a( E% R        LOG_INFO("open /dev/ttyS  failure ...");3 \; g- A  d1 N: P4 Y. @
        return ;
2 X: B5 A1 _& v' Q: |    }2 X( J  }: u" m/ P& k& w
    LOG_INFO("open /dev/ttyS1  success ...");+ s  T( J0 L0 N- q& s0 y
    tcgetattr(fd, &setting);9 @" c( J: Q# [0 h3 S/ ?
    speed_t speed;! ?  J+ b! g% g6 o8 F( _
    speed = btr;
+ j- z: S1 p+ n/ o7 {: ]  r# M* N/ c9 `8 G9 [% P5 E
    cfsetispeed(&setting, speed);
4 F# d" j9 d: Y5 A    cfsetospeed(&setting, speed);- O/ n* O* \1 x; U. K
    cfmakeraw(&setting);( v7 a: X0 M4 a1 D) ~: i! r! z: `
    setting .c_cflag |= CS8;2 l3 N4 @. x* S- I- w& X
    setting.c_cflag &= ~PARENB;
9 d' D5 J0 g9 f+ A# S( E    setting.c_iflag &= ~INPCK;
5 c: a* C( M: o/ s8 a0 f# v6 g    setting.c_cflag &= ~CSTOPB;
+ L# C9 W: r0 E* v' \- a( o    tcflush(fd, TCIFLUSH);
& k# o1 e) I9 V0 h' c    setting.c_cc[VTIME] = 0;- ~, Y  J+ L$ {, G
    setting.c_cc[VMIN] = 0;- N/ l0 e% }% C
    tcsetattr(fd, TCSANOW, &setting);2 }, g2 p2 o6 r

. e4 J) U1 _9 T( v, {    int ret;7 \( H; @* Z, A; _1 d
    char *buff = {"hello,485write ok"} ;
8 k/ V* @7 f* b    ret = write(fd, buff, 17);
# a2 M: y6 [$ ]6 Z+ q" i
! _5 t* z2 {" o' @1 F+ _) e% ^    char buff1[256] ;6 b( a3 x: P3 D4 D: I$ ?3 Z5 I
    while(1){/ b/ E( t: Q! X5 D* p

0 G1 ?/ P6 z, R4 c+ J5 G& p          ret = read(fd, buff1, 255);# F7 O" _* g% t+ C+ l1 P2 w0 o
          if(ret > 0){
: y+ b- I9 k# p* L! N, }. o3 U
+ L1 k8 H& p# g9 H, J                     write(fd, buff1, 5);. h5 `' w. I2 y+ K) p

, Z+ a% R7 ]9 q/ j1 s" C! I2 v7 y  U                      LOG_INFO("rs485 receiver ret = %d " , ret);1 N$ ]1 u' a% }; ?. g* J( K

. o! B- f( v9 X* F3 v. C          }
9 r" i5 ^5 p4 K9 G* k7 y) B% D0 b* e. s  v
    }
2 ~; b2 c; E' u4 {. }3 F
- v- E: J- L& j( C# K" }, c% d   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?: J+ F2 f; ]' M# Z& ~  k$ f' v
$ N" H. V$ K( U+ C% H

2 a9 k% s1 {( H9 Q6 q! V. s' A
9 G: H; }  H& V( Y1 `" u
分享到:  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-1 09:54 , Processed in 0.037464 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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