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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

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

( c: V& j0 L6 Z) ~您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。
. u. z3 Y' z1 I
4 n% _7 S/ _' o
我的qt程序如下:
- _' y2 n2 e/ O( b: p4 h. b: g2 ~. d   struct termios setting;
2 W* ^& @' b: o6 S    fd = open("/dev/ttyS1", O_RDWR);
3 C" L# H) V5 A; u/ ~    if (fd == -1) {
( E! E5 }7 i. W0 P1 q; E        LOG_INFO("open /dev/ttyS  failure ...");+ y+ a# I7 p- Z- B0 w3 F
        return ;
0 t; [$ ~$ r; y0 e$ g# |: n9 {4 L    }3 _0 S* T8 F2 M7 |4 W! u
    LOG_INFO("open /dev/ttyS1  success ...");% @9 h; x* C* N2 V0 P) y! N$ }
    tcgetattr(fd, &setting);
* L1 Z1 S9 o6 J$ e" p0 F, Q    speed_t speed;
+ A  r2 {2 n8 b9 L; D* ?; M    speed = btr;+ ~2 k0 G! J7 H4 ?6 @- G
' g4 J2 [9 Z4 {2 `( y
    cfsetispeed(&setting, speed);+ s! u3 b: Q7 g$ e8 t
    cfsetospeed(&setting, speed);
# N3 O, o2 R0 t; v- g% _. e    cfmakeraw(&setting);
/ M. z$ e; ]4 i' D9 E    setting .c_cflag |= CS8;% f6 ^& o4 Z8 f, f8 R. ]9 @
    setting.c_cflag &= ~PARENB;
4 U+ P& R; }  m    setting.c_iflag &= ~INPCK;
. M# R9 e$ Q) c9 e    setting.c_cflag &= ~CSTOPB;
% `( v0 ?. i  {, E    tcflush(fd, TCIFLUSH);
" _7 `( `7 z  x" G. o* [3 S    setting.c_cc[VTIME] = 0;. M; i4 }: }3 w0 b
    setting.c_cc[VMIN] = 0;
. t: E/ E% C+ }6 X& q( b0 `    tcsetattr(fd, TCSANOW, &setting);
  U$ f$ e1 V  r; v( t2 M4 v% o6 a8 n6 V  \9 r& s. G2 \
    int ret;
) Y7 x8 ]! @) V0 v- O1 |. J" J9 b    char *buff = {"hello,485write ok"} ;0 W5 C3 p; S3 ~, G7 S- X* R
    ret = write(fd, buff, 17);# d/ f0 @7 s! H5 f. T4 [

3 Q$ B# }5 E) w6 I    char buff1[256] ;
& C% I5 T; }& v, \: ]& o    while(1){
' {9 J* u) O0 g5 g; A7 P, x* `# b- M" S6 J3 a5 H/ r: {. ?
          ret = read(fd, buff1, 255);
' j  \" Z) n6 P* R1 m+ q8 P          if(ret > 0){
- x5 Z; V. o, t0 B6 c+ b, d0 ?" H" j( M8 s# c
                     write(fd, buff1, 5);
3 F9 K' X* s% @& O  d7 @% Z1 N+ ^) u# q+ \0 p
                      LOG_INFO("rs485 receiver ret = %d " , ret);( m! P1 E$ {  w. w
3 y/ K- H8 d+ m9 g/ U  L. F  R. T3 ]
          }
1 e2 P( m0 |/ c* a5 c8 p+ \8 _
1 w0 R) b7 G# T$ Z3 c6 V" k8 N    }
2 w8 t, y5 \, c, b
! y6 ]: w0 x: z   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?- p; M0 |4 a; q1 w; h1 A* z- s
) H* `! n& M$ F- M1 k7 I2 p1 ?
9 c( Z) B8 L9 Y5 I7 H" G2 J' N+ S6 i

5 S- u$ j- i2 x  ~, S4 D+ @- S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-15 23:43 , Processed in 0.039111 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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