- 论坛徽章:
- 0
|
函数在使用前需要声明,TC编译器有点过时- #include <stdio.h>
- unsigned int calcrc(unsigned char buf[],unsigned char len);
- main()
- {
- unsigned char buf[] = "ABCDEFGH12345678";
- unsigned char len = 16;
- unsigned int retu_crc;
- retu_crc = calcrc(buf, len);
- }
- unsigned int calcrc(unsigned char buf[],unsigned char len)
- {
- const unsigned int crc_gen = 0xa001;
- unsigned int crc;
- unsigned char i,j;
- crc = 0xffff;
- if (len != 0)
- {
- for(i = 0;i < len;i++)
- {
- crc ^= (unsigned int)(buf[i]);
- for(j = 0;j < 8;j++)
- {
- if (crc & 0x01)
- {
- crc >>= 1;
- crc ^= crc_gen;
- }
- else
- crc >>= 1;
- }
- }
- }
- return crc;
- }
复制代码 |
|