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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RS485问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

积分
1263
跳转到指定楼层
楼主
发表于 2016-10-8 12:44:04 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
1 G. L5 I, e, `5 ~% ^% R
您好,使用OMAPL138-EVM开发板,按照《2-1开发板快速体验》,在内核编译时把"System Type -> TI DaVinci Implementations->Enable UART1 RS485 funcation"选项选上,并重新编译内核,然后使用编译后的内核启动系统。发现开发板485口能发数据,但是不能接收数据。
0 t2 }6 R* B" F4 ~% ~
. K0 @6 m/ {5 V  T
我的qt程序如下:  V) i0 {  a% _) L: U
   struct termios setting;. U( |2 R; q5 c/ C, h/ n- {
    fd = open("/dev/ttyS1", O_RDWR);- ?- Z. C1 t9 [0 e  l: H/ R, w2 C
    if (fd == -1) {% b, w8 e8 `) J" [/ X! K( l
        LOG_INFO("open /dev/ttyS  failure ...");
9 l* |5 v' w8 }* V) {3 i        return ;
, `3 C/ J8 u5 ^4 u. V2 C$ \    }* [1 ~4 y3 ~2 d
    LOG_INFO("open /dev/ttyS1  success ...");
9 U6 e4 n+ b5 |/ P# t    tcgetattr(fd, &setting);/ z. v3 D+ O8 E9 s5 ?, g
    speed_t speed;
2 _1 y) G) v6 M( u% ]) R( N    speed = btr;
' d# i  |* D: i7 o' x+ W+ y: e
) m/ J" U  e9 K; @& h  K! \$ E% h    cfsetispeed(&setting, speed);
- Z4 f1 W/ }# _3 U/ p1 j    cfsetospeed(&setting, speed);
0 P& d1 n& M! F- r    cfmakeraw(&setting);, E; @; g8 {! a+ k/ f2 \( U  a
    setting .c_cflag |= CS8;- W( X+ p( j1 g, ~4 {
    setting.c_cflag &= ~PARENB;, d5 e7 F) b( Z  \8 S, a5 g* `0 ?5 s
    setting.c_iflag &= ~INPCK;8 B+ f# I2 P4 a% \
    setting.c_cflag &= ~CSTOPB;- @: i1 a3 }( W8 Q$ P
    tcflush(fd, TCIFLUSH);
* M* `0 f2 d$ F# P" g( b    setting.c_cc[VTIME] = 0;! X2 N% G0 z5 e+ ?
    setting.c_cc[VMIN] = 0;$ G2 D5 {  l, m9 v9 _6 _- Z+ g$ h
    tcsetattr(fd, TCSANOW, &setting);6 m$ d+ W8 Z4 ]5 g1 U9 y4 g

8 i! m$ u( X! n3 x  r2 `    int ret;
, r2 e: H7 D* Z5 c' ?    char *buff = {"hello,485write ok"} ;
4 @( }' W" n/ B6 \' \# e    ret = write(fd, buff, 17);
% P3 o9 {6 s) Z! B2 C
# }1 q4 m7 P$ h0 @    char buff1[256] ;
3 ~* Y* [# s5 E  \, o  l* i2 d    while(1){
' O1 t3 ~) u5 E! {; s8 L9 l$ B0 H' Z4 y: f! O' @7 f
          ret = read(fd, buff1, 255);
0 D9 B9 x' y( M; L* T$ U$ Y          if(ret > 0){
! W3 X$ M; p$ f/ U5 Q' i2 ~
% j. E, ]! l. p% [/ {6 ^                     write(fd, buff1, 5);# Q" t, f! F9 e& K( q

8 f1 N+ J! L0 [- E" _5 r                      LOG_INFO("rs485 receiver ret = %d " , ret);8 O+ r8 W& M3 O

* S  L: U; ]/ [5 {8 a5 Z. f1 ]          }
! b  F1 A& S  z/ {/ b# k% B/ n7 h; [& e3 x- B, s
    }1 ^8 k. M- `7 `' \

% K- |9 h7 X1 v' \. r% k5 D   我使用串口调试助手,开发板能发送数据,调试助手能收到”hello,485write ok“,但是调试助手发的数据开发板却没有收到。并且用示波器可以看到UART1_RXD管脚的数据。请问为什么?
6 `1 L9 m* ~# d4 r8 l9 u

( m) A, K! H9 b$ a- y+ O
5 Y8 T1 M3 o6 C- X' @, i/ o( ?- A

9 y" Z  t8 a' b% H. v2 D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-18 22:29 , Processed in 0.039405 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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