當前位置:首頁 » 編程語言 » c語言crc

c語言crc

發布時間: 2025-06-03 23:02:55

Ⅰ crc16校驗的c語言程序

unsigned short crc_dsp(unsigned short reg, unsigned char data_crc)
//reg為crc寄存器, data_crc為將要處理的8bit數據流
{
unsigned short msb; //crc寄存器將移出的最高1bit
unsigned short data;
unsigned short gx = 0x8005, i = 0; //i為左移次數, gx為生成多項式

data = (unsigned short)data_crc;
data = data << 8;
reg = reg ^ data;
do
{
msb = reg & 0x8000;
reg = reg << 1;
if(msb == 0x8000)
{
reg = reg ^ gx;
}
i++;
}
while(i < 8);
return (reg);
}

Ⅱ 單片機 用c語言編寫 modbus rtu 通訊怎麼寫啊 主要是crc 校驗部分不知道怎麼寫 怎麼把一竄字元進行CRC計算

我剛剛寫好.跟PLC連接測試過,可以的.

/***************************************************************
CRC計算方法
1.預置1個16位的寄存器為十六進制FFFF(即全為1);稱此寄存器為CRC寄存器;
2.把第一個8位二進制數據(既通訊信息幀的第一個位元組)與16位的CRC寄存器的低
8位相異或,把結果放於CRC寄存器;
3.把CRC寄存器的內容右移一位(朝低位)用0填補最高位,並檢查右移後的移出位;
4.如果移出位為0:重復第3步(再次右移一位);
如果移出位為1:CRC寄存器與多項式A001(1010 0000 0000 0001)進行異或;
5.重復步驟3和4,直到右移8次,這樣整個8位數據全部進行了處理;
6.重復步驟2到步驟5,進行通訊信息幀下一個位元組的處理;
7.將該通訊信息幀所有位元組按上述步驟計算完成後,得到的16位CRC;

*****************************************************************/

/****************************************************************************
名稱: UART_CRC16_Work()
說明: CRC16校驗程序
參數: *CRC_Buf:數據地址
CRC_Leni:數據長度
返回: CRC_Sumx:校驗值
*****************************************************************************/
unsigned int UART_CRC16_Work(unsigned char *CRC_Buf,unsigned char CRC_Leni)
{
unsigned char i,j;
unsigned int CRC_Sumx;

CRC_Sumx=0xFFFF;
for(i=0;i<CRC_Leni;i++)
{
CRC_Sumx^=*(CRC_Buf+i);//異或
for(j=0;j<8;j++)
{
if(CRC_Sumx & 0x01)
{
CRC_Sumx>>=1;
CRC_Sumx^=0xA001;
}
else
{
CRC_Sumx>>=1;
}
}
}
return (CRC_Sumx);
}

Ⅲ C語言 編寫一個程序 求輸入一個數計算它的CRC值,

unsignedintcrc(unsignedchar*buf,unsignedcharlen)
{
chari;
unsignedintc_dat=0xffff;//有的CRC校驗這個值是0
for(;len>0;len--)//
{
c_dat^=*buf;
for(i=0;i<8;i++)
{
if((c_dat&0x1)==0x1)
{
c_dat>>=1;
c_dat^=0xa001;
}
else
{
c_dat>>=1;
}
}
buf++;
}
returnc_dat;
}

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:593
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:888
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:582
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:765
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:684
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1013
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:255
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:114
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:806
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:713