熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2020-6-22 14:12
正文摘要:本程序?yàn)閹RC校驗(yàn)的單片機(jī)串口收發(fā)例程,CRC校驗(yàn)為查表法,實(shí)驗(yàn)單片機(jī)型號為STC12C5A32S2。例程中加入了包頭和包尾作為初步校驗(yàn),但包頭包尾均不參加CRC計(jì)算。 &nb ... |
我一般都懶得校驗(yàn),只用截取中間數(shù)據(jù)用![]() ![]() ![]() |
謝謝分享,有時(shí)間實(shí)驗(yàn)一下 |
四年后的今天,這段代碼又在我的程序里跑起來了 |
嗯,CRC學(xué)習(xí)了。 |
謝謝指點(diǎn),學(xué)習(xí)中。 |
aking991 發(fā)表于 2020-6-23 08:35 才想起來,我這段程序還真沒在中斷里計(jì)算CRC,麻煩下載一下好好看看......中斷里只是判斷了三個(gè)HEX的包頭和包尾......CRC計(jì)算是在主循環(huán)里計(jì)算的,因?yàn)榘^包尾都不參與計(jì)算,還要有一個(gè)去包頭包尾的過程...... |
校驗(yàn)這方面是不斷學(xué)習(xí)別人的經(jīng)驗(yàn),一滴滴積累起來的。謝謝分享 |
aking991 發(fā)表于 2020-6-23 08:35 這個(gè)例程里的接收包長是固定的,所以沒有考慮那么多。而且主要是提供一個(gè)基礎(chǔ)函數(shù),具體到做產(chǎn)品里使用還得看個(gè)人積累。 |
建議不要在串口中斷里進(jìn)行這些相關(guān)計(jì)算,如果碰到超長幀或高波特率通訊時(shí)的接收可能會受影響,應(yīng)在接收中斷中先緩存,緩存完了再去主函數(shù)中進(jìn)行計(jì)算,這樣才有保證完整性,只是建議 |
Powered by 單片機(jī)教程網(wǎng)