![]() |
發布時間: 2020-6-22 14:12
正文摘要:本程序為帶CRC校驗的單片機串口收發例程,CRC校驗為查表法,實驗單片機型號為STC12C5A32S2。例程中加入了包頭和包尾作為初步校驗,但包頭包尾均不參加CRC計算。 &nb ... |
我一般都懶得校驗,只用截取中間數據用![]() ![]() ![]() |
謝謝分享,有時間實驗一下 |
四年后的今天,這段代碼又在我的程序里跑起來了 |
嗯,CRC學習了。 |
謝謝指點,學習中。 |
aking991 發表于 2020-6-23 08:35 才想起來,我這段程序還真沒在中斷里計算CRC,麻煩下載一下好好看看......中斷里只是判斷了三個HEX的包頭和包尾......CRC計算是在主循環里計算的,因為包頭包尾都不參與計算,還要有一個去包頭包尾的過程...... |
校驗這方面是不斷學習別人的經驗,一滴滴積累起來的。謝謝分享 |
aking991 發表于 2020-6-23 08:35 這個例程里的接收包長是固定的,所以沒有考慮那么多。而且主要是提供一個基礎函數,具體到做產品里使用還得看個人積累。 |
建議不要在串口中斷里進行這些相關計算,如果碰到超長幀或高波特率通訊時的接收可能會受影響,應在接收中斷中先緩存,緩存完了再去主函數中進行計算,這樣才有保證完整性,只是建議 |