電磁流量計在自動抄表的應用與探討 五十
初始化時設計UARTO和UARIT 都是數據接收中斷,當有數據到來時,把數據和預先放在一段數據區里的通信協議頭進行比較,如果協議頭比較出錯則設定要重新比較協議頭,如果正確就接著接收后面的有效數據,并一直等待有效數據接收結束的一個標志數據OXOD,當然可能出錯接收不到結束數據,這會造成程序的異常發生,所以要用個計數變量來設定最大的有效數據的個數,如果在這個個數之內沒有接收到結束數據,那肯定是通信數據出錯了,發送命令出錯的返回碼給上位機并設定重新接收協議頭。
在命令接收正確的情況下,對數據進行比較分析,調用數據處理的子程序,并把要發送回去的數據放到一個預先分配的一段內存里,根據要發送的字節個數,把這段數據從對應的串口發送出去即可。
電磁流量計