首先,他们家的说明书,是最不能信的说明书, 他们STC89系列~STC12系列的下载电路图全都是错的,到现在都没改过来,所以,他们的手册,你看看就可以了,别太当回事。
先不说,如果你收了3次, 其中有不一样, 三中取二之后,这个结果,就是可以信赖的么? 通讯可以这么马虎,少数服从多数就好了?你怎么知道,其实一共有14个1,2个0, 但是你偏偏取了其中 1个1,2个0 来决定出了最终结果0呢? 这真的比只取一次好么?
其次,这是STC在20多年前的方案了,当时据说是衡量过,16分频后取7,8,9 这三次,数据最为可靠。10年前,他们STC15出来后,已经取消了3种取2的方式,只取唯一数据,因此波特率也改为了 4分频,让串口的速度再次的提升了。所以,目前其他家如何,我不知道,至少STC,你用他最尖端的单片机,就是使用的你认为的“有风险”的串口传输。
接着,串口要数据可靠,不能用9位传输么? 不能数据传输完了发送一个累计校验么?这个不比那虚无缥缈的 3中取2 来的可靠么?
最后,模拟串口也是可以3中取2, 或者 5中取3, 7中取4的,你懂了模拟串口的原理,有什么不能做的?
最后的PS: “在大量数据中会有1次错误” 如果不是硬件问题,那么就是你模拟串口的代码写的太滥。无非就是读的0/1, 硬件串口的优势根本不是在这里体现得好吧? |