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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

积分
1263
跳转到指定楼层
楼主
发表于 2016-10-8 12:44:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
+ Z( w# _/ v1 d3 e
您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。% o0 V1 W/ J3 v, S1 p3 E& w4 i

9 K$ I  D! c+ i( o我的qt程序如下:
/ \& y) `# M: A% L9 x8 L0 C- E   struct termios setting;* h# h# ^- x$ X( [  E3 e! t
    fd = open("/dev/ttyS1", O_RDWR);
$ \- e. @$ Y" R& i; f' R. _: t    if (fd == -1) {1 A) A5 o7 y2 v& a+ T  D5 b
        LOG_INFO("open /dev/ttyS  failure ...");+ q- t$ y* c; X% v( @+ R! a
        return ;
! e% f" h9 e& W; U3 h! l+ A" R; g    }
. y( B% y( B$ u0 }5 g7 b1 Q    LOG_INFO("open /dev/ttyS1  success ...");
; X6 t; |1 |& v& E0 O. w8 y    tcgetattr(fd, &setting);
0 m. V- L! k+ y+ a9 j2 Z, F    speed_t speed;
. j. N' ?) @2 P# ?4 e$ B    speed = btr;" g# `, H# y: \' W* k
4 g# h7 r8 W$ }+ b; y1 r6 Y. b0 y
    cfsetispeed(&setting, speed);
: L. H* M5 v) I! }7 C, _8 d! I    cfsetospeed(&setting, speed);  M/ b4 q2 R3 Y5 j
    cfmakeraw(&setting);
8 i* Y; ?+ L" c    setting .c_cflag |= CS8;; F! ~& B% N5 V" x9 n/ U
    setting.c_cflag &= ~PARENB;6 m2 v% V0 j/ X! c4 W
    setting.c_iflag &= ~INPCK;
/ z6 N- l  ~" a% s- W4 T: R  [; d    setting.c_cflag &= ~CSTOPB;
' ^3 y% z* A# V9 ?, p' [: l. O1 R    tcflush(fd, TCIFLUSH);1 O! N, `# q0 g
    setting.c_cc[VTIME] = 0;" @$ I1 E3 z% A
    setting.c_cc[VMIN] = 0;( V: v* k/ a7 m
    tcsetattr(fd, TCSANOW, &setting);. ?) \# O8 x# l% x; v2 B5 v
' ^$ d+ B2 E" I1 D( M
    int ret;* d9 b) h9 o4 B" i
    char *buff = {"hello,485write ok"} ;
& c6 g$ Z2 d4 a& d5 p4 X    ret = write(fd, buff, 17);! a6 w0 A) @; R9 W* |
) V2 M8 e$ J+ E* k" C0 T6 @
    char buff1[256] ;
* e7 W4 Q/ f" ?- ?- D7 Z: X% @& W    while(1){, S, S5 e" o& r4 @, J

+ Y, D7 l5 u0 {" m# L0 O          ret = read(fd, buff1, 255);
5 f  g3 f4 d7 V+ Q  q/ a          if(ret > 0){
, l- m0 w$ _, L, E% T- a. S# l, w# e; o$ V4 A
                     write(fd, buff1, 5);8 u4 Z8 L( q; S! w3 \

7 r3 j+ W: s; T6 _2 S& h+ b                      LOG_INFO("rs485 receiver ret = %d " , ret);
  @! M3 @! t% ]5 b7 T
6 U0 k, g0 Y1 V0 p5 x, ?, {- R          }
6 Y( y' A% k# l
$ {) k7 e' h: N; V( D    }  v( |# p. Y: f. `. n4 T' V

# B! a; U; N" t! c& p. v# i   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?* S2 G& F3 N- e. l  |( Q4 b) ?) L3 @. T

! n& z. p) ^8 s

& w# Z) F" m1 |" Y! |' z
5 q4 s( s, e- u! s  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-12-14 19:20 , Processed in 0.035876 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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