FreeModbus 配置串口为1/2位(停止位)数据都能正常通信, 为何?

2019-12-26 18:50发布

实验环境:
<1> FreeModbus 1.5版本.
<2> ModbusPool 作为主机, (stm32f1)单片机作为从机.
<3> 使用RS485作为媒介进行通信.
<4> 使用9600波特率.
<5> 不管上位机还是下位机, 都不使用奇偶校验.

实验缘由:
如下图所示: 协议要求如果不使用奇偶校验位的话, 必须使用2位停止位.
我之前还没有在意这个, 赶紧实验下看看, 结果更没想到...
000.png (105.25 KB, 下载次数: 0) 下载附件 2017-7-26 14:47 上传

实验现象:
<1> 上位机(Modbus Pool)配置使用1位停止, 下位机(单片机)配置使用1位停止位.
<2> 上位机(Modbus Pool)配置使用1位停止, 下位机(单片机)配置使用2位停止位.
<3> 上位机(Modbus Pool)配置使用2位停止, 下位机(单片机)配置使用1位停止位.
<4> 上位机(Modbus Pool)配置使用2位停止, 下位机(单片机)配置使用2位停止位.

实验疑问:
上述4种情况经过验证, 数据都能正常通信, 并且不出现乱码. 请问大神, 该如何解释???
13条回答
security
2019-12-27 10:32
擦鞋匠 发表于 2017-7-28 10:22
感谢楼上两位大神, 看来我要学习/理解的东西还有很多啊...路慢慢长...我该何去何从...  ...

time + insight。
如果具备好的 insight,那么 time 会很短。

说到 insight,我再给你说一个问题:
我记得以前跟你说过标点符号的问题,你现在仍是英文模式,只不过有进步,变成:英文 + space。
这仍是不对的。
如果我是你的主管,你的文档这么写,内容都不用看了,直接打回去,整理好格式再来。
你好像一直没意识到这个问题,看看网络上、身边周围的人,多数人是跟你一样?还是不一样呢?
能不能意识到正统、主流的做法,这就是 insight 的一个体现。

你如果要说这样码字快的话,我想说的是:我们不是打字员,我们是程序员!

你可以看下:
阮一峰的这篇文章:「中文技术文档的写作规范」。

一周热门 更多>