OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4185|回复: 3

VB的crc,没有看懂,怎么转为C语言啊

[复制链接]

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2019-6-3
在线时间
23 小时
发表于 2019-12-9 17:59:55 | 显示全部楼层 |阅读模式
1金钱
CRC校验:对数据包头(除起始符)和数据包体所有字节进行下列操作所得结果,可用来检验数据是否正确

CRC校验过程
Const crct = "000 094 188 226 097 063 221 131 194 156 126 032 163 253 031 065" _
           + "157 195 033 127 252 162 064 030 095 001 227 189 062 096 130 220" _
           + "035 125 159 193 066 028 254 160 225 191 093 003 128 222 060 098" _
           + "190 224 002 092 223 129 099 061 124 034 192 158 029 067 161 255" _
           + "070 024 250 164 039 121 155 197 132 218 056 102 229 187 089 007" _
           + "219 133 103 057 186 228 006 088 025 071 165 251 120 038 196 154" _
           + "101 059 217 135 004 090 184 230 167 249 027 069 198 152 122 036" _
           + "248 166 068 026 153 199 037 123 058 100 134 216 091 005 231 185" _
           + "140 210 048 110 237 179 081 015 078 016 242 172 047 113 147 205" _
           + "017 079 173 243 112 046 204 146 211 141 111 049 178 236 014 080" _
           + "175 241 019 077 206 144 114 044 109 051 209 143 012 082 176 238" _
           + "050 108 142 208 083 013 239 177 240 174 076 018 145 207 045 115" _
           + "202 148 118 040 171 245 023 073 008 086 180 234 105 055 213 139" _
           + "087 009 235 181 054 104 138 212 149 203 041 119 244 170 072 022" _
           + "233 183 085 011 136 214 052 106 043 117 151 201 074 020 246 168" _
           + "116 042 200 150 021 075 169 247 182 232 010 084 215 137 107 053"
Dim crctab(255) As Integer
For i = 0 To 255
  crctab(i) = Mid(crct, 3 * i + 1, 3)
Next
Dim crc As Byte
For ii = 数据包头(除起始符) To数据包体最后一字节
      crc = crctab(crc Xor arrin(ii))
Next

最佳答案

查看完整内容[请看2#楼]

uint8_t crcab[256] = { 000,094,188,226,097,063,221,131,194,156,126,032,163,253,031,065, 157,195,033,127,252,162,064,030,095,001,227,189,062,096,130,220, 035,125,159,193,066,028,254,160,225,191,093,003,128,222,060,098, 190,224,002,092,223,129,099,061,124,034,192,158,029,067,161,255, 070,024,250,164,039,121,155,197,132,218,056,102,229,187,089,007, 219,133,103,057,186,228,006,088,025,07 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

1156

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7462
金钱
7462
注册时间
2015-1-15
在线时间
1367 小时
发表于 2019-12-9 17:59:56 | 显示全部楼层
uint8_t crcab[256] =
{
        000,094,188,226,097,063,221,131,194,156,126,032,163,253,031,065,
        157,195,033,127,252,162,064,030,095,001,227,189,062,096,130,220,
        035,125,159,193,066,028,254,160,225,191,093,003,128,222,060,098,
        190,224,002,092,223,129,099,061,124,034,192,158,029,067,161,255,
        070,024,250,164,039,121,155,197,132,218,056,102,229,187,089,007,
        219,133,103,057,186,228,006,088,025,071,165,251,120,038,196,154,
        101,059,217,135,004,090,184,230,167,249,027,069,198,152,122,036,
        248,166,068,026,153,199,037,123,058,100,134,216,091,005,231,185,
        140,210,048,110,237,179,081,015,078,016,242,172,047,113,147,205,
        017,079,173,243,112,046,204,146,211,141,111,049,178,236,014,080,
        175,241,019,077,206,144,114,044,109,051,209,143,012,082,176,238,
        050,108,142,208,083,013,239,177,240,174,076,018,145,207,045,115,
        202,148,118,040,171,245,023,073,008,086,180,234,105,055,213,139,
        087,009,235,181,054,104,138,212,149,203,041,119,244,170,072,022,
        233,183,085,011,136,214,052,106,043,117,151,201,074,020,246,168,
        116,042,200,150,021,075,169,247,182,232,010,084,215,137,107,053,
};

uint8_t crc_calc(uint8_t *buf, uint16_t length)
{
        uint8_t crc;
       
        for(uint16_t i = 0; i < length; i++)
        {
                crc = crcab[ crc ^ buf[i] ];
        }
}
一分耕耘一分收获。
回复

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164897
金钱
164897
注册时间
2010-12-1
在线时间
2100 小时
发表于 2019-12-10 02:02:32 | 显示全部楼层
直接找个C的CRC代码就可以了。
回复

使用道具 举报

37

主题

594

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1565
金钱
1565
注册时间
2017-7-17
在线时间
307 小时
发表于 2019-12-10 09:47:42 | 显示全部楼层
为什么要转?CRC不是在C语言里面用的很多吗?直接找一个不行?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-5-29 03:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表