Non puoi selezionare più di 25 argomenti
Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
|
- #include "crc.h"
-
- quint16 calculateCrc(const QByteArray &data)
- {
- quint16 crc = 0xFFFF; // MODBUS初始值
- const quint16 polynomial = 0xA001; // MODBUS多项式(0x8005的反转)
-
- for (int i = 0; i < data.size(); ++i)
- {
- crc ^= static_cast<quint8>(data.at(i));
-
- for (int bit = 0; bit < 8; ++bit)
- {
- if (crc & 0x0001)
- { // 检查最低位
- crc = (crc >> 1) ^ polynomial; // 右移并异或
- } else
- {
- crc >>= 1; // 仅右移
- }
- }
- }
- return crc;
- }
|