我已经阅读了一个有用的网站,其中包含其他帖子中包含的CRC计算器,效果很好,但不幸的是,C语言提供的代码不会复制这些功能: http://www.zorc.breitbandkatze.de/crc.html
CRC16-CCITT(x.25)需要以下配置,这是我正在使用的传感器和支持电子组件的格式:
但是,有时会使用C代码计算错误的CRC ,具体而言,使用在线计算器可以正确显示。
您可以在以下链接中找到C代码,但请务必更改配置选项以匹配上述内容: http://www.zorc.breitbandkatze.de/crctester.c
以下是放置在C代码中的示例数据包:
const char string[] = { "\x82\x2f\x0a\x40\x00\x00\x7a\x44" };
返回错误的CRC“0x1e4e”。
并在在线计算器中: “%82%2F%0A%40%00%00%图7a%44”
返回正确的CRC“0xd831”。
此外,您需要一个既可以使用在线计算器又可以使用C代码的数据包。
在C代码中:
const char string[] = { "\x81\x2f\x0b\x4f\xd8\xab\x0d\x42\xed" };
在在线计算器中: “%81%2F%0B%的4f%D8%AB%0D%42%ED”
有谁知道为什么会这样,以及如何纠正C代码以解决这个问题?
非常感谢您考虑提供帮助!