打印
[MCU]

MAX485芯片使用问题(引脚DE,RE)

[复制链接]
3293|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我用MAX485进行485通信,通信方式为主从方式,上位机发出命令,电路板收到正确命令后返回相关指令。可现在的问题是这样的一个过程无法进行,电路板只能接收来自上位机端的数据,不能将数据发出去(通过示波器测量发现DI引脚上有信号,但是电脑仍然显示没有接收到数据)。我怀疑是MAX485芯片RE,DE引脚的使用问题,我单独将DE引脚拉高,RE引脚拉高,发现电路板是可以向电脑发送命令的,可为什么进行主从式的一收一发就不行咧????????我对RE,DE引脚的控制过程如下所示:


1.芯片初始化 RE_PIN = LOW ,DE_PIN = LOW;(初始置于接收状态)
2.如果接收到正常数据
RE_PIN = HIGH;         (置于发送状态)
DE_PIN = HIGH;
UART_Send_Data(......);
RE_PIN = LOW;
DE_PIN = LOW;       (恢复至接收状态)

我发现这样每次都能正常接收,可就是不能将数据发出去。(示波器测量相关引脚都有波形)

搞不明白了!!请教各位用过MAX485芯片的人了!!!!!



相关帖子

沙发
coody| | 2016-7-9 22:30 | 只看该作者
发送信号正常了吗?

使用特权

评论回复
板凳
zyj9490| | 2016-7-10 01:07 | 只看该作者
问题原因,DE,RE置高时,接下来发送,前面几个字节是电脑是收不到的,因为状态还没有切换过来,也就是中间要加延时。这可以用示波器看下,DE端,到AB同时看。

使用特权

评论回复
地板
huhaomcu|  楼主 | 2016-7-10 09:04 | 只看该作者
zyj9490 发表于 2016-7-10 01:07
问题原因,DE,RE置高时,接下来发送,前面几个字节是电脑是收不到的,因为状态还没有切换过来,也就是中间 ...

确实是6延时问题   加上延时就可以了

使用特权

评论回复
5
huhaomcu|  楼主 | 2016-7-10 09:32 | 只看该作者
zyj9490 发表于 2016-7-10 01:07
问题原因,DE,RE置高时,接下来发送,前面几个字节是电脑是收不到的,因为状态还没有切换过来,也就是中间 ...

还有个问题就是延时的时间一般多少合适

使用特权

评论回复
6
zyj9490| | 2016-7-10 09:51 | 只看该作者
huhaomcu 发表于 2016-7-10 09:32
还有个问题就是延时的时间一般多少合适

十几个微秒是必须的

使用特权

评论回复
7
huhaomcu|  楼主 | 2016-7-10 10:34 | 只看该作者
zyj9490 发表于 2016-7-10 09:51
十几个微秒是必须的

不知怎么回事又不行了

IMG_20160710_103325.jpg (63.28 KB )

IMG_20160710_103325.jpg

使用特权

评论回复
8
huhaomcu|  楼主 | 2016-7-10 10:35 | 只看该作者
zyj9490 发表于 2016-7-10 09:51
十几个微秒是必须的

我延时了500ms都不行了 请问我延时的位置有错吗?

使用特权

评论回复
9
huhaomcu|  楼主 | 2016-7-10 10:43 | 只看该作者
zyj9490 发表于 2016-7-10 09:51
十几个微秒是必须的

我用示波器测波形  发现485线上有波形发出来了  可我电脑怎么还是没法接收数据啊!

使用特权

评论回复
10
zyj9490| | 2016-7-10 13:32 | 只看该作者
本帖最后由 zyj9490 于 2016-7-10 13:34 编辑

你用串口小助手测试的吗?用小助手,协议能否正常通信。

使用特权

评论回复
11
zyj9490| | 2016-7-10 13:33 | 只看该作者
应是上位机接收的问题吧

使用特权

评论回复
12
zyj9490| | 2016-7-10 13:35 | 只看该作者
huhaomcu 发表于 2016-7-10 10:35
我延时了500ms都不行了 请问我延时的位置有错吗?

有问题的,发下命令,空闲允许多少是有规定的。

使用特权

评论回复
13
zyj9490| | 2016-7-10 13:37 | 只看该作者
按MODBUS协议,空100MS

使用特权

评论回复
14
ningling_21| | 2016-7-10 14:26 | 只看该作者
huhaomcu 发表于 2016-7-10 10:43
我用示波器测波形  发现485线上有波形发出来了  可我电脑怎么还是没法接收数据啊! ...

检查电脑的232接口是否有数据波形

使用特权

评论回复
15
huhaomcu|  楼主 | 2016-7-11 08:42 | 只看该作者
zyj9490 发表于 2016-7-10 13:32
你用串口小助手测试的吗?用小助手,协议能否正常通信。

对  串口调试助手。我是不是放延时的位置有问题噢

使用特权

评论回复
16
huhaomcu|  楼主 | 2016-7-11 08:44 | 只看该作者
zyj9490 发表于 2016-7-10 13:35
有问题的,发下命令,空闲允许多少是有规定的。

请问我放延时的位置有问题吗

使用特权

评论回复
17
huhaomcu|  楼主 | 2016-7-11 09:23 | 只看该作者
还是不行啊 485线上都能看到发出的波形了怎么还是没有收到数据呀!

使用特权

评论回复
18
huhaomcu|  楼主 | 2016-7-11 09:28 | 只看该作者
为什么我电脑

IMG_20160711_092059.jpg (70.14 KB )

IMG_20160711_092059.jpg

使用特权

评论回复
19
huhaomcu|  楼主 | 2016-7-11 09:47 | 只看该作者
谢谢楼上各位的热情回答。现在问题解决了,是usb_485的问题。总结:485是单双工芯片 接收 发送使能引脚需单独控制,并且转换需要延时,刚才上图示波器出现那样低电平的原因是因为引脚转换控制延时语句造成的

使用特权

评论回复
20
JerryWu75| | 2016-7-11 10:04 | 只看该作者
既然用的是半双工,把RE和DE合并为一个IO控制不更好吗?既节约资源,又不容易出错.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

189

主题

508

帖子

3

粉丝