多机通讯,(非51单片机)难点分析,待解决->初步解决

近来打算转多机通信但是发现了一些当前水平不可解决的问题,留作以后深入I2C、RS485才可解决了。

好不容易用现有的while 循环 if条件判断 flag变量设置的低级方法勉强在逻辑上可以行的通了,但是遇到多个从机的TXD连在一起之后无法发送数据了。

多机通讯,(非51单片机)难点分析,待解决->初步解决_第1张图片多机通讯,(非51单片机)难点分析,待解决->初步解决_第2张图片

有限的硬件知识,使用PIC的单片机,只有推挽输出的模式,使得当前实在没有行之有效的方法去解决,另外关于主机模块和从机模块的编写颇有点小孩子过家家的意味在里面,幼稚,缺少架构模块化的思想。并且如果用RS485实际中也会遇到各种各样的问题,大致可能如下,现在也看不太懂:

https://wenku.baidu.com/view/f7a17226f46527d3240ce0a4.html

多机通讯,(非51单片机)难点分析,待解决->初步解决_第3张图片

随便截了部分图如下:(以后和现在看来都有点不堪入目)

多机通讯,(非51单片机)难点分析,待解决->初步解决_第4张图片

只是单纯调用函数这样子,所以此帖只能留作后续更新用了!

 

2019.02.17

荒废了大概半个月左右的时间,从昨天开始,重新再战。

第一改变了原有的各种flag变量控制,发现一些进程可以在子函数里调用,重点是

函数调用里可以用while(1)这种死循环,然后某个条件成立,再return,就可以节省很多不必要的flag变量。

第二再proteus用rs487模拟出来,虽然似乎自动转换TXD RXD的电路仿真不行,我到手的rs485模块是可以的,但是无妨,

在加入方向位DE、RE的控制下,今天居然能够实现初步的效果,具体还有很多亟待完善,至少让我感到了希望。

截图如下,没仔细理过,后续看时间、精力放动图。

多机通讯,(非51单片机)难点分析,待解决->初步解决_第5张图片

你可能感兴趣的:(PIC18F452,多机通讯)