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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

积分
1263
跳转到指定楼层
楼主
发表于 2016-10-8 12:44:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
9 \- V0 |3 p6 \' C7 Y7 I3 Q
您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。
4 ^# o0 L4 a/ D. Y7 S  n0 X

; J4 x" K! p- q8 a, B* {我的qt程序如下:* c: Y4 u% O# \0 |  [* M$ R
   struct termios setting;
+ D3 I: q5 ~1 C: n    fd = open("/dev/ttyS1", O_RDWR);
9 o$ D  Z9 G# H. v/ o& h) N- L    if (fd == -1) {" ]' P: n: ]* ]+ R/ t* Q! ^$ k  l2 V
        LOG_INFO("open /dev/ttyS  failure ...");" y- ]0 V! F0 b, X
        return ;4 O' I+ o* @/ i/ N/ d8 w7 [6 `
    }
3 t( t) ^1 v- [7 {$ v8 q! W! J    LOG_INFO("open /dev/ttyS1  success ...");1 ^; L  D* @% {+ e
    tcgetattr(fd, &setting);
7 F. {6 r' ?* _5 [5 t) O9 a4 D$ X0 {    speed_t speed;" v/ I- i) U5 S" n" `5 M
    speed = btr;
7 ?8 ^( `* ~% D" h% I
4 R" {8 x. |1 |    cfsetispeed(&setting, speed);
5 U: ]6 v$ [, F# ~, ~    cfsetospeed(&setting, speed);, D) c% m$ U7 m# ~8 y
    cfmakeraw(&setting);$ L' ~' e% s2 ?' s7 W3 ~/ F
    setting .c_cflag |= CS8;
$ t- g' g, x/ Q; k) t    setting.c_cflag &= ~PARENB;" w/ {, b; E2 v5 H* x4 b0 a6 ~4 y7 R
    setting.c_iflag &= ~INPCK;
, j$ m' c5 l+ w  ^    setting.c_cflag &= ~CSTOPB;
7 E6 |" A7 W/ u* e/ j/ N7 {# b- O    tcflush(fd, TCIFLUSH);) z4 \# V' d( r- p
    setting.c_cc[VTIME] = 0;
& {6 S9 C5 s2 X  F6 V0 a' [! X    setting.c_cc[VMIN] = 0;$ i# d" l' e. F1 T9 O
    tcsetattr(fd, TCSANOW, &setting);: Q# {' N; S2 R: A

# e: m3 q* T7 X: r1 f, E    int ret;4 p" m9 K* k# W8 Z7 z& |* l
    char *buff = {"hello,485write ok"} ;4 C; X& W9 K. }. V
    ret = write(fd, buff, 17);* e% {" i/ Z; U6 a6 s( P* e' a
0 i+ S0 G2 S0 g( r5 K4 D
    char buff1[256] ;
) X8 O9 _+ j4 [; a) c9 _    while(1){. t3 l# ]" R8 Y' e" F% r

- ~0 G3 L' ]6 O. x          ret = read(fd, buff1, 255);
' X( L, i0 R& j% ]4 T( S8 x. V          if(ret > 0){& S1 A, d0 d( t( c  `

# c' \4 ]3 Z/ c& |/ o) Y8 U                     write(fd, buff1, 5);
' V, T* E' p: D2 p# J
7 ^, t- `+ _8 ^3 [7 J( E                      LOG_INFO("rs485 receiver ret = %d " , ret);
8 r0 }4 G: b+ r9 ?) J
  `( F9 @# I0 T8 m  R# |- W* a4 [9 F          }
2 i- V- }2 b# Q2 x; ^: p
7 [: o1 J- ?2 m2 L+ u    }& C$ M$ d  x4 P4 R0 j$ U4 L7 r+ u% R

1 f- }1 x9 N, o) U   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
8 o# S! g* k% T/ x4 ]0 y

3 d5 H' ?, \% j( G
! H( u3 E: L  F9 [$ |, \9 C/ O" t; C
: \2 Z% d+ \' A3 l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-18 01:44 , Processed in 0.037492 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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