一个项目里往往有很多从站需要和主站用串口通讯,正常的做法是需要到现场,待设备通电后,下载程序,设置地址,等等
那能不能在办公室就把一部分的功能先调试好?那就需要一机多从了,就是一台CPU,做n台从站供调试用。
最近做了一个这样的,把项目里可能用到的几十个从站数据都做进来了,早这样做,那要省多少事呀!
1 初始化程序:初始化接收条件,初始化字符格式和波特率,开中断,连接接收完成中断和发送完成中断,执行接收指令。
2 接收中断程序:通过地址功能码和校验判断是哪个从站,然后连接一个定时中断,在定时中断里发送需要的数据,部分数据,比如地址,功能码,字节数量在数据块先写好。
3 定时中断程序:分离定时中断,组织数据发送给主站
4 发送完成中断里再执行接收指令。
接收完成中断里需要考虑的问题比较多:
不符合结束条件的就返回并执行RCV指令,等待下一个指令到来。
写功能的指令,也是要返回数据给主站的
对于符合接收中断条件的,但地址功能码和校验等不符合的,这种情况一般不会发生,但要考虑到呀,不能让程序进入死胡同呀,所以最后还要再来一句执行RCV指令。