【问题标题】:usb crc5 11 bit check functionusb crc5 11位校验功能
【发布时间】:2021-04-20 08:21:31
【问题描述】:

我有以下要构建 crc5 的数据。

address: 0x19, endp: 0x1, and crc 0x19. 

value1 = convert_lsb(0x19) >> 1;
value2 = convert_lsb(0x1);
crc = crc5_11bit_usb(value1 << 4 | (value2 >> 4));

关于 addr 0x19 和 endp 0x1 的工具的 crc5 结果应该是 0x19。

代码有什么问题?

如果我对类似数据做同样的事情,但 endp 为 0xa,则结果是正确的。

value1 = convert_lsb(0x3a) >> 1;
value2 = (convert_lsb(0xa));
crc = crc5_11bit_usb(value1 << 4 | (value2 >> 4));

数据来自分析usb的工具,我想手动构建crc5。

示例代码 https://godbolt.org/z/Wqv1Mxnxj

【问题讨论】:

    标签: c usb


    【解决方案1】:

    数据是从左到右读取的,因此端点在地址的前面,而不是在末尾。

    【讨论】:

      猜你喜欢
      • 2017-07-05
      • 1970-01-01
      • 2021-07-22
      • 2014-04-17
      • 2012-03-24
      • 1970-01-01
      • 1970-01-01
      • 2015-06-29
      • 2012-07-02
      相关资源
      最近更新 更多