我正在实现UART写到富士通的单片机和im与CheckSum计算,写入需要两个CRC字节在512个字节包的末尾。但如何计算呢?我搞不懂。我使用原来的Fujitsu程序员检查它在我的每个数据事务上计算的crc,用于exmaple:如果我发送512字节(全部为零,第一个字节为0x11)
1100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
然后,程序员将crc计算为:

我检查了富士通的数据表,发现:

但是我什么都不懂,我真的很擅长进一步的数学,有人能指点我在严格的道路上吗?这是什么校验和类型?
/////////////////////////////////////
编辑
这个公式与我所需要的校验和无关:(但有些人分享了富士通BOOTROM的一些信息,并证明了0x30和0x31 -这是我的mcu给出的同样的页面写入答案,他的crc算法也是一样的。他说,它的crc16带有polynome 0x1021和他的功能的红色屏幕:

我用polynome 0x1021和init 0x0000检查了所有已知的crc16,无法得到我所需要的答案(例如0x11 )。
/////////////////////////////////////
EDIT2还有更多的例子:
1)
01 00 00 00 0000 00 00 00 0000 00 00 00 0000 00 00 00 0000 00 00 00 0000 00 00 00 0000 00 00 00 0000 00 00 00 0000 00 00 0000 00 0000 00 0000 00 0000 00 00
给我0x8108 CRC

与上面相同的

我可以检查任何可能有助于找出的数据。
发布于 2022-06-24 04:03:13
校验和引用产生一个字节结果。不是两个字节。不管这两个字节是生成的,它都不是用您找到的来完成的。你是从哪里得到0x1e和0xf0的?您确定这些字节表示校验和吗?
更新:
再举几个例子,我所能说的只是它不是儿童权利委员会。有一些证据表明,这是一个校验和,因为相同的值是从开头的01和结尾的01获得的。然而,也有反对它的证据,因为在数据中移动02时,情况并非如此。
https://stackoverflow.com/questions/72737719
复制相似问题