打印

懂485的大虾 帮小弟一把

[复制链接]
2072|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
原野之浪|  楼主 | 2012-8-27 19:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
485的AB两脚电压短接后(模拟不接上下拉电阻),然后单片机 刚上电  进入中断服务程序接收到了一个0x00,请问为什么不会连续接收多个0x00,而只是接收一个0x00?

请教

相关帖子

沙发
看见未来| | 2012-8-27 19:34 | 只看该作者
起始位

使用特权

评论回复
板凳
airwill| | 2012-8-27 20:30 | 只看该作者
嗯, 就是因为只有一个起始位. 根据 UART 协议, 后面接收不到低电平跳变, 所以不再继续接收到数据了.

使用特权

评论回复
地板
wjzx111056| | 2012-8-27 21:43 | 只看该作者
RS-485的电气特性:逻辑“1”以两线间的电压差为+(0.2~6)V表示;逻辑“0”以两线间的电压差为-(0.2~6)V表示。你短接后AB两线的电压差是恒定的,所以就没有电平的跳变啊!这样数据就不发生变化。

使用特权

评论回复
5
misra| | 2012-8-28 15:08 | 只看该作者
4# wjzx111056
按照大侠的意思 :
短接 断开  短接 断开

于是电平变化 就应该不断接收到字符

使用特权

评论回复
6
joyme| | 2012-8-28 17:19 | 只看该作者
正解,异步通信,只要有一个开始位,后面必然会接受一个字节,楼主这种情况应该是软件没有强制检测停止位,如果规定了停止位就不会受到有效数据(因为短接是不会有停止位的)。

使用特权

评论回复
7
misra| | 2012-8-28 20:06 | 只看该作者
6# joyme
大侠 咋检测 停止位?
啥片子有这功能?

使用特权

评论回复
8
misra| | 2012-8-28 20:08 | 只看该作者
RS-485的电气特性:逻辑“1”以两线间的电压差为+(0.2~6)V表示;逻辑“0”以两线间的电压差为-(0.2~6)V表示。你短接后AB两线的电压差是恒定的,所以就没有电平的跳变啊!这样数据就不发生变化。 ...
wjzx111056 发表于 2012-8-27 21:43

一直是低电平 数据就不发生变化?

你似乎没有答道点子上。
似乎是根据结论推出原因。
应该根据原因推出结论

使用特权

评论回复
9
joyme| | 2012-8-29 10:13 | 只看该作者
串口设置有几种模式吧,如 1 起始位 + 8位数据位 + 1 停止位,有些还可以设置奇偶校验什么的,起始位是从高电平变低电平,停止位就是从低电平到高电平,如果短接就没有从低到高的变化,即接收不到停止位

不过我觉得这种问题也不影响你的产品的话,也可以不去纠结它

使用特权

评论回复
10
原野之浪|  楼主 | 2012-9-6 17:59 | 只看该作者
RS-485的电气特性:逻辑“1”以两线间的电压差为+(0.2~6)V表示;逻辑“0”以两线间的电压差为-(0.2~6)V表示。你短接后AB两线的电压差是恒定的,所以就没有电平的跳变啊!这样数据就不发生变化。 ...
wjzx111056 发表于 2012-8-27 21:43

按照你这种理论,是不是短接松开 然后短接松开。。。。是不是就会不停地进入中断啊?
你想想可不可能?

使用特权

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

本版积分规则

1

主题

44

帖子

0

粉丝