在线观看黄A片免费网站-国产人成视频在线观看-国产精品永久久久久久久久久-中文字幕观看
您的位置:
首頁
>>
管理中心
>>
行業(yè)資訊
>>修改新聞資訊信息
資訊類型:
行業(yè)要聞
企業(yè)動態(tài)
新品速遞
解決方案
交流培訓(xùn)
嘉賓訪談
產(chǎn)業(yè)縱橫
人物聚焦
展會動態(tài)
會展報告
本站動態(tài)
標(biāo) 題:
*
頁面廣告:
不顯示
顯示
副 標(biāo) 題:
關(guān) 鍵 字:
多個關(guān)鍵字請用“
/
”分隔,如:西門子/重大新聞
內(nèi)容描述:
新聞來源:
鏈 接:
責(zé)任編輯:
標(biāo)題圖片:
無
當(dāng)編輯區(qū)有插入圖片時,將自動填充此下拉框
*
所屬類別:
(不超過20項)
電源產(chǎn)品分類
:
UPS電源
穩(wěn)壓電源
EPS電源
變頻電源
凈化電源
特種電源
發(fā)電機(jī)組
開關(guān)電源(AC/DC)
逆變電源(DC/AC)
模塊電源(DC/DC)
電源應(yīng)用分類
:
通信電源
電力電源
車載電源
軍工電源
航空航天電源
工控電源
PC電源
LED電源
電鍍電源
焊接電源
加熱電源
醫(yī)療電源
家電電源
便攜式電源
充電機(jī)(器)
勵磁電源
電源配套分類
:
功率器件
防雷浪涌
測試儀器
電磁兼容
電源IC
電池/蓄電池
電池檢測
變壓器
傳感器
軸流風(fēng)機(jī)
電子元件
連接器及端子
散熱器
電解電容
PCB/輔助材料
新能源分類
:
太陽能(光伏發(fā)電)
風(fēng)能發(fā)電
潮汐發(fā)電
水利發(fā)電
燃料電池
其他類
:
其他
靜態(tài)頁面:
生成靜態(tài)頁面
*
內(nèi) 容:
<P>一、計算步驟:</P> <P>1、定義一個初始值為FFFF的16位的組合變量(regs),該變量稱為CRC寄存器。</P> <P>2、把欲發(fā)送或接收消息的高8位和CRC寄存器的底8位作異或運(yùn)算,并把結(jié)果在賦到CRC寄存器。</P> <P>3、CRC寄存器右移1位(朝最低位),同時最高位添零。取出并檢查最低位是否為1。</P> <P>4、如果為1,則CRC寄存器與多項式A001異或;如果為0,則重復(fù)第3步的動作。</P> <P>5、重復(fù)3和4直到完成了8次移位。這樣完整的8位字節(jié)將完成處理了。</P> <P>6、對于下一個8位字節(jié)的處理就是重復(fù)第2步到第5步了</P> <P>7、把所有的欲發(fā)送或接收消息這樣處理后,CRC寄存器里的值就是我們最終需要得到的CRC校驗碼(在result中)。</P> <P>二、C51源程序</P> <P>/*CRC數(shù)組計算程序*/</P> <P>#include <stdio.h></P> <P>typedef unsigned char uchar;//定義簡寫類型</P> <P>typedef unsigned short u16;//定義簡寫類型</P> <P>u16 result;//放計算后的CRC結(jié)果值</P> <P>u16 len=6;//參與計算的數(shù)組個數(shù)(不包括CRC兩子節(jié))</P> <P>//數(shù)組1</P> <P>//uchar ppp[]={0xFF,0x03,0xC0,0x21,0x04,0x03,0x00,0x07,0x0D,0x03,0x06};</P> <P>//CRC高節(jié)=0x9b,CRC低節(jié)=0x03,即result=0x9B03 len=11</P> <P>//數(shù)組2</P> <P>uchar ppp[]={0x64,0x03,0x00,0x0A,0x00,0x01};</P> <P>//CRC高節(jié)=0xfd,CRC低節(jié)=0xad 即result=0xfdad len=6</P> <P>//定義組合結(jié)構(gòu) </P> <P>typedef union </P> <P>{</P> <P> u16 val;</P> <P> struct</P> <P> {</P> <P> u16 bit0 : 1;</P> <P> u16 bit1 : 1;</P> <P> u16 bit2 : 1;</P> <P> u16 bit3 : 1;</P> <P> u16 bit4 : 1;</P> <P> u16 bit5 : 1;</P> <P> u16 bit6 : 1;</P> <P> u16 bit7 : 1;</P> <P> u16 bit8 : 1;</P> <P> u16 bit9 : 1;</P> <P> u16 bit10 : 1;</P> <P> u16 bit11 : 1;</P> <P> u16 bit12 : 1;</P> <P> u16 bit13 : 1;</P> <P> u16 bit14 : 1;</P> <P> u16 bit15 : 1;</P> <P> } bits;</P> <P>} CRCREGS;</P> <P>CRCREGS regs;</P> <P> </P> <P>u16 CRCCheck(uchar *pp,u16 CRClen)</P> <P>{</P> <P>bit a;</P> <P>int i,j;</P> <P>regs.val=0xffff;</P> <P>pp=&ppp[0];</P> <P>for(i=0;i<CRClen;i++)</P> <P> {</P> <P> regs.val^=pp[i];</P> <P> for(j=0;j<8;j++)</P> <P> {</P> <P> a=regs.bits.bit0;</P> <P> regs.val>>=1; </P> <P> if(a) regs.val^=0xA001;</P> <P> }</P> <P> }</P> <P> return regs.val;</P> <P>}</P> <P> </P> <P>/* 主程序 */</P> <P>void main()</P> <P>{ </P> <P>result=CRCCheck(ppp,len);</P> <P>}</P> <P>三、簡要說明</P> <P>1、程序中列了兩組數(shù),可以做測試用,結(jié)果都在注釋中,注意 len 的值要與數(shù)組的個數(shù)相匹配,數(shù)組1為11,數(shù)組2為6;</P> <P>2、regs.val是一個共用體變量,該變量既可以作為字用,也可以進(jìn)行位操作,詳細(xì)情況請參照變量union和共用和struct結(jié)構(gòu)類型體說明;</P> <P>3、在主程序中直接調(diào)用result=CRCCheck(ppp,len);即可得到CRC-16結(jié)果,注意ppp是一個數(shù)組變量,在函數(shù)中是當(dāng)成數(shù)組變量指針用的。</P>本人參考了許多資料,通過反復(fù)修本人認(rèn)為是比較精練的C51程序,完全可以直接用到編程中去。希望能夠?qū)ν杏兴鶐椭?/textarea>