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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

- t8 }$ W( [; D& b- D您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。
8 v; w2 N6 q" S" t4 |# D: z7 R

1 s% l$ @8 x" @* @我的qt程序如下:
7 y5 q2 d  Z, E! y7 n   struct termios setting;
& H3 E  R, e4 `: Z    fd = open("/dev/ttyS1", O_RDWR);4 {& d* k, t! E. K9 k" h' o
    if (fd == -1) {
# l* c0 T. S8 R$ W$ ^4 \% X# b- _# S        LOG_INFO("open /dev/ttyS  failure ...");
, A, p* J) h0 X8 D* M        return ;
* L1 z# P' Z/ G% l+ |$ Y    }% a' A/ h8 d* D2 k0 M% x- G5 q9 o* o2 o
    LOG_INFO("open /dev/ttyS1  success ...");
; G$ U) V  H2 _0 t6 Q    tcgetattr(fd, &setting);
: _% q# U/ K0 m' E- H5 e    speed_t speed;* B$ S4 ]/ ~) _3 `% w6 m- r" h) q
    speed = btr;
+ n' ]7 r! W4 W. C$ |  C) \3 ^
6 g/ ^# l$ T3 D; c3 o* S& p    cfsetispeed(&setting, speed);
! W6 {$ B: i% `$ G, s' I    cfsetospeed(&setting, speed);
! J+ @% @) }  s- {0 p' D2 [. \; O    cfmakeraw(&setting);. d8 s+ U; s5 f
    setting .c_cflag |= CS8;  h/ c& T8 i6 b: a  |$ r$ ^) O' O2 g
    setting.c_cflag &= ~PARENB;
" j- j1 |. C9 d    setting.c_iflag &= ~INPCK;
) @/ C) S4 L* r) E8 Y    setting.c_cflag &= ~CSTOPB;8 d0 |, z7 [% l* T$ g% v
    tcflush(fd, TCIFLUSH);3 d2 T! |" q$ i. L: m
    setting.c_cc[VTIME] = 0;
/ B0 \" ?. i( p; }# W8 U& u    setting.c_cc[VMIN] = 0;
+ e, d% ?4 Y; w: v5 D0 H& t# i! \    tcsetattr(fd, TCSANOW, &setting);( A- \1 o; F6 E8 {
* f# p1 x4 M2 U: V
    int ret;
  C, T! `1 P1 a5 r# L    char *buff = {"hello,485write ok"} ;
8 W5 m1 J( g- j) C" s+ U- _2 S    ret = write(fd, buff, 17);5 l1 j- ~, y# K: m' {8 G& {, {  C
1 Y' o5 @( y. z- r- O* {1 N3 _
    char buff1[256] ;
8 {. y; K" M2 C7 a* V/ U( ~    while(1){" s: _( s- o& f, E- y! _3 E4 k
/ k% x# w! R4 |- q- X- w
          ret = read(fd, buff1, 255);' i; k2 f* ~2 C$ z7 b1 g3 k7 i
          if(ret > 0){
3 V7 d' M# D" N+ S4 J' s  Y5 m, o
: f3 G5 D# d% f1 T; Z$ ^! Q/ W, R7 P                     write(fd, buff1, 5);5 `4 q, }" R) \' W( {; h

4 |: ^$ u# r8 [! J. {- z9 j                      LOG_INFO("rs485 receiver ret = %d " , ret);& e6 ]0 v& k8 ~4 R1 P8 n# }! X5 x
  t5 g* G6 Y2 ~- ~' E+ N
          }" T3 ~; _1 Y. o: S5 k  Z4 E

' l8 \) H4 R: Q6 `2 P- N    }
/ m8 t4 T) Y& ?' u0 X. f3 t
7 Z: t8 Y' G0 ~; q- x   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
( w* B& j( C9 P) [3 x. g3 n

  |/ A% |4 V( |9 r) ]2 V, Y

. u9 H* s# C4 v. A6 ?: k  U! y) i1 I: |- N% w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 14:40 , Processed in 0.036291 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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