懂485的大虾 帮小弟一把

[复制链接]
 楼主| 原野之浪 发表于 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两线的电压差是恒定的,所以就没有电平的跳变啊!这样数据就不发生变化。
misra 发表于 2012-8-28 15:08 | 显示全部楼层
4# wjzx111056
按照大侠的意思 :
短接 断开  短接 断开

于是电平变化 就应该不断接收到字符
joyme 发表于 2012-8-28 17:19 | 显示全部楼层
正解,异步通信,只要有一个开始位,后面必然会接受一个字节,楼主这种情况应该是软件没有强制检测停止位,如果规定了停止位就不会受到有效数据(因为短接是不会有停止位的)。
misra 发表于 2012-8-28 20:06 | 显示全部楼层
6# joyme
大侠 咋检测 停止位?
啥片子有这功能?
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

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

你似乎没有答道点子上。
似乎是根据结论推出原因。
应该根据原因推出结论
joyme 发表于 2012-8-29 10:13 | 显示全部楼层
串口设置有几种模式吧,如 1 起始位 + 8位数据位 + 1 停止位,有些还可以设置奇偶校验什么的,起始位是从高电平变低电平,停止位就是从低电平到高电平,如果短接就没有从低到高的变化,即接收不到停止位

不过我觉得这种问题也不影响你的产品的话,也可以不去纠结它
 楼主| 原野之浪 发表于 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

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