diff --git a/testtool/舵机校验计算工具/a.exe b/testtool/舵机校验计算工具/a.exe index 8bcfe06..8c3a012 100644 Binary files a/testtool/舵机校验计算工具/a.exe and b/testtool/舵机校验计算工具/a.exe differ diff --git a/testtool/舵机校验计算工具/main.c b/testtool/舵机校验计算工具/main.c index d5146b9..7661743 100644 --- a/testtool/舵机校验计算工具/main.c +++ b/testtool/舵机校验计算工具/main.c @@ -7,7 +7,7 @@ #define DATA_LEN 3 #define DATA_TYPE 4 -#define DATA_CHECKSUM_START 4 +#define DATA_CHECKSUM_START 5 /* * 如:FF FF FE 07 03 2A 08 00 03 E8 DA @@ -32,9 +32,12 @@ uint8_t steering_gear_check_sum(int *buffer, int buffer_size) { } checksum = (buffer[DATA_ID] + buffer[DATA_LEN] + buffer[DATA_TYPE]); // 固定加这三位 + // printf("checksum:%d\n", checksum); // checksum把数据长度算里面了,但是数据长度位没把自己算里面 for (int i = 0; i < (buffer[DATA_LEN] - 2); i++) { + // printf("buffer:0x%x\n", buffer[DATA_CHECKSUM_START + i]); checksum += buffer[DATA_CHECKSUM_START + i]; + // printf("checksum:0x%x\n", checksum); } return ((~checksum) & 0xff); @@ -67,9 +70,10 @@ int get_int_buffer_len(int *buffer, int buffer_size) { * 0xFF, 0xFF, 0x01, 0x02, 0x06 */ int main(int argc, char *argv[]) { - int buffer[128] = {0xFF, 0xFF, 0x01, 0x04, 0x02, 0x38, 0x02}; // 恢复出厂设置 + int buffer[128] = {0xFF, 0xFF, 0x01, 0x04, 0x03, 0x1E, 0x05}; // 恢复出厂设置 - printf("check sum:0X%x\n", steering_gear_check_sum(buffer, get_int_buffer_len(buffer, (sizeof(buffer) / sizeof(int))))); + printf("check sum:0X%x\n", + steering_gear_check_sum(buffer, get_int_buffer_len(buffer, (sizeof(buffer) / sizeof(int))))); return 0; }