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

[复制链接]
4083|19
 楼主| huhaomcu 发表于 2016-7-9 21:31 | 显示全部楼层 |阅读模式
我用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延时问题   加上延时就可以了
 楼主| huhaomcu 发表于 2016-7-10 09:32 来自手机 | 显示全部楼层
zyj9490 发表于 2016-7-10 01:07
问题原因,DE,RE置高时,接下来发送,前面几个字节是电脑是收不到的,因为状态还没有切换过来,也就是中间 ...

还有个问题就是延时的时间一般多少合适
zyj9490 发表于 2016-7-10 09:51 | 显示全部楼层
huhaomcu 发表于 2016-7-10 09:32
还有个问题就是延时的时间一般多少合适

十几个微秒是必须的
 楼主| huhaomcu 发表于 2016-7-10 10:34 来自手机 | 显示全部楼层
zyj9490 发表于 2016-7-10 09:51
十几个微秒是必须的

不知怎么回事又不行了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| huhaomcu 发表于 2016-7-10 10:35 来自手机 | 显示全部楼层
zyj9490 发表于 2016-7-10 09:51
十几个微秒是必须的

我延时了500ms都不行了 请问我延时的位置有错吗?
 楼主| huhaomcu 发表于 2016-7-10 10:43 来自手机 | 显示全部楼层
zyj9490 发表于 2016-7-10 09:51
十几个微秒是必须的

我用示波器测波形  发现485线上有波形发出来了  可我电脑怎么还是没法接收数据啊!
zyj9490 发表于 2016-7-10 13:32 | 显示全部楼层
本帖最后由 zyj9490 于 2016-7-10 13:34 编辑

你用串口小助手测试的吗?用小助手,协议能否正常通信。
zyj9490 发表于 2016-7-10 13:33 | 显示全部楼层
应是上位机接收的问题吧
zyj9490 发表于 2016-7-10 13:35 | 显示全部楼层
huhaomcu 发表于 2016-7-10 10:35
我延时了500ms都不行了 请问我延时的位置有错吗?

有问题的,发下命令,空闲允许多少是有规定的。
zyj9490 发表于 2016-7-10 13:37 | 显示全部楼层
按MODBUS协议,空100MS

ningling_21 发表于 2016-7-10 14:26 | 显示全部楼层
huhaomcu 发表于 2016-7-10 10:43
我用示波器测波形  发现485线上有波形发出来了  可我电脑怎么还是没法接收数据啊! ...

检查电脑的232接口是否有数据波形
 楼主| huhaomcu 发表于 2016-7-11 08:42 来自手机 | 显示全部楼层
zyj9490 发表于 2016-7-10 13:32
你用串口小助手测试的吗?用小助手,协议能否正常通信。

对  串口调试助手。我是不是放延时的位置有问题噢
 楼主| huhaomcu 发表于 2016-7-11 08:44 来自手机 | 显示全部楼层
zyj9490 发表于 2016-7-10 13:35
有问题的,发下命令,空闲允许多少是有规定的。

请问我放延时的位置有问题吗
 楼主| huhaomcu 发表于 2016-7-11 09:23 来自手机 | 显示全部楼层
还是不行啊 485线上都能看到发出的波形了怎么还是没有收到数据呀!
 楼主| huhaomcu 发表于 2016-7-11 09:28 来自手机 | 显示全部楼层
为什么我电脑

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| huhaomcu 发表于 2016-7-11 09:47 来自手机 | 显示全部楼层
谢谢楼上各位的热情回答。现在问题解决了,是usb_485的问题。总结:485是单双工芯片 接收 发送使能引脚需单独控制,并且转换需要延时,刚才上图示波器出现那样低电平的原因是因为引脚转换控制延时语句造成的
JerryWu75 发表于 2016-7-11 10:04 | 显示全部楼层
既然用的是半双工,把RE和DE合并为一个IO控制不更好吗?既节约资源,又不容易出错.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

190

主题

509

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部