163
社区成员
发帖
与我相关
我的任务
分享
以上是上位机通讯数据流,发现有些32位校验码和我计算器计算的结果不一致.
雷达停止
命令:A5 0D 15 07 01 30 00 EA F8 FE CF, 32位校验码计算:15070130 + 00 = 15070130,取反:EAF8FECF, 数据结果对得上;
回复:A5 3D 12 07 04 00 00 EA F8 FE ED 0E 03 01 , 32位校验码计算:12070400 + 00EAF8FE = 12F1FCFE,取反:ED0E0301, 数据结果对得上;
雷达启动
命令:A5 ED 15 07 01 50 01 E9 F8 FE AF, 32位校验码计算:15070150 + 01000000 = 16070150,取反:E9F8FEAF, 数据结果对得上;
回复:A5 1D 12 07 04 20 00 E9 F8 FE ED 0F 03 E1 , 32位校验码计算:12070420 + 00E9F8FE = 12F0FD1E,取反:ED0F02E1, 数据结果对不上;
雷达休眠
命令:A5 DF 15 05 01 60 02 E8 FA FE 9F, 32位校验码计算:15050160 + 02000000 = 17050160,取反:E8FAFE9F, 数据结果对得上;
回复:A5 0F 12 05 04 30 00 E8 FA FE ED 12 01 D1, 32位校验码计算:12050430 + 00E8FAFE = 12EDFF2E,取反:ED1200D1, 数据结果对不上;
这里的校验数据就对不上了,是为什么?
您好,32位取值高低byte有误,以您的数据流做正确演示如下:
雷达停止
回复:A5 3D 12 07 04 00 00 EA F8 FE ED 0E 03 01 , 32位校验码计算:00040712 + fef8ea00 = FEFCF112,取反:01030EED
雷达启动
回复:A5 1D 12 07 04 20 00 E9 F8 FE ED 0F 03 E1 , 32位校验码计算:20040712 + FEF8E900 = 1EFCF012取反:E1030FED