电磁流量计在自动抄表的应用与探讨 五十
初始化时设计UARTO和UARIT 都是数据接收中断,当有数据到来时,把数据和预先放在一段数据区里的通信协议头进行比较,如果协议头比较出错则设定要重新比较协议头,如果正确就接着接收后面的有效数据,并一直等待有效数据接收结束的一个标志数据OXOD,当然可能出错接收不到结束数据,这会造成程序的异常发生,所以要用个计数变量来设定最大的有效数据的个数,如果在这个个数之内没有接收到结束数据,那肯定是通信数据出错了,发送命令出错的返回码给上位机并设定重新接收协议头。
在命令接收正确的情况下,对数据进行比较分析,调用数据处理的子程序,并把要发送回去的数据放到一个预先分配的一段内存里,根据要发送的字节个数,把这段数据从对应的串口发送出去即可。
电磁流量计