【玩轉(zhuǎn)485】16.crc校驗(yàn)2【連載16】
林慧玲
發(fā)布于2015-03-05 10:38
14
0
標(biāo)簽:通訊
我們現(xiàn)在已經(jīng)搞清楚了crc校驗(yàn)的算法,本文我就向大家具體講解一下如何把crc校驗(yàn)加入到我們的程序里。
1、crc校驗(yàn)使用原理 crc校驗(yàn)在程序中運(yùn)行的原理主要可以分為以下幾步。
步:主站發(fā)送數(shù)據(jù)前把要發(fā)送的數(shù)據(jù)進(jìn)行crc校驗(yàn),將要發(fā)送的數(shù)據(jù)和crc校驗(yàn)的結(jié)果一起發(fā)送給從站。
第二步:從站接收到主站發(fā)送的數(shù)據(jù)后對除去crc校驗(yàn)碼以外的數(shù)據(jù)再次進(jìn)行crc校驗(yàn)計(jì)算。
第三步:從站把自己算出來的校驗(yàn)碼和從主站接收到的校驗(yàn)碼進(jìn)行比對,如果一樣則說明接收到的是正確的數(shù)據(jù),進(jìn)行下一步程序。如果不一樣則說明接收到的是錯誤的數(shù)據(jù),重新進(jìn)入等待接收狀態(tài)。
第四步:如果接收到的是正確的數(shù)據(jù),從站將要返回給主站的數(shù)據(jù)進(jìn)行crc校驗(yàn),并將返回數(shù)據(jù)與校驗(yàn)結(jié)果一并發(fā)回給主站。
2、程序的編寫 此處我就用之前的向V區(qū)寫入數(shù)值的程序來向大家演示如何將上面說的流程融入到整個程序中。這里我們程序的變化都在接收完成中斷和子程序Write中大家可以著重看這兩部分程序。
圖2-1主程序
圖2-1
圖 2-2~圖 2-4是接收完成中斷
圖 2-2
圖2-3
圖 2-4
圖 2-5crc校驗(yàn)
圖 2-5
圖 2-6~圖 2-10子程序Write
圖 2-6
圖2-7
圖2-8
圖2-9
圖 2-10
圖 2-11發(fā)送完成中斷
圖 2-11
作者:馬樂
版權(quán)為技成所有,盜取必究!