请教一个关于485串口通信的问题
本帖最后由 yuse 于 2009-12-8 20:52 编辑我是用的modbus通信协议,主机轮询访问485上的从机。
我的问题是:如果主机轮询编号相邻的两个从机的时间间隔很短,那么是否会影响到从机的正常工作呢,因为从机是采用中断方式接收发送,假如总线上不断地有主机和从机互相发送接收数据,那么从机们就会一直进入中断检测是不是自己的地址,这样是否会影响从机工作呢?因为我的从机用来检测温度用,至少需要1s的周期才能够读到每次的温度值。所以是不是应该调长主机轮询编号相邻的两个从机的时间间隔呢?这个时间怎么算最合适呢?不知道我的思路是不是有问题,希望朋友们给予指点 谢谢!
//////////////////////////////////////////////////////////////////////////////////////////
谢谢前辈指点,我调试了下程序,一旦通讯发生进入中断,返回后很容易会导致破坏了18b20的时序图,导致进入死循环,或者出错 只要从机程序合理就不会有影响,中断服务程序只负责数据转存和设定标志,主程序再根据标志进行处理,所费时间很短,完全来得及处理其它任务,楼主现在的问题是要先解决编程思想。 本帖最后由 yuse 于 2009-12-8 17:58 编辑
谢谢前辈指点,我调试了下程序,一旦通讯发生进入中断,返回后很容易会导致破坏了18b20的时序图,导致进入死循环,或者出错 2# chunyang 要调整软件工艺,18b20的操作周期远慢于MCU的几条指令运行时间,期间发生的中断处理得当就不会有影响,18b20无需始终在读取,上次数据上报后再行读取一次即可,此时发生的通讯跟本机无关,甚至可以不响应。 恩 那我就是想得检测温度时关中断 通信时开中断 通信完关中断执行一次读温度 再开中断等待通信
页:
[1]