所以,我有一个自定义计算CRC的方法
这是:
class CrcCalc:
def __init__(self):
msk_11_4 = 0x0810
msk_0 = 0x0001
msk_data = 0x80
msk_15 = 0x8000
high = 1
low = 0
def __getcrc(self, buf):
msk_11_4 = 0x0810
# msk_0 = 0x0001
# msk_data = 0x80
msk_15 = 0x8000
crc = 0xffff
j=0
k = j
j += 1
for k in buf[k]:
data = buf[ord(k)]
i = 0
while i <= 7:
data << 1
crc_15 = crc & msk_15
if (data & msk_15):
flag = crc_15
flag = 0 if crc_15 == msk_15 else msk_15
else:
flag = crc_15
if (flag):
crc = ((msk_11_4 ^ crc) << 1) | 1
else:
crc << 1
return crc
我需要向串口发送一些数据并以字节的形式接收答案。
我必须发送的数据是:90 b8 00 00 07 55 a4 7b 00 da 03 02 05 01 前两个字节是头部的CRC,然后是5个字节的头部,其中最后两个字节是数据的CRC,然后是7个字节是数据,我需要像这样接收答案(39 6d 00 20)。
但我无法理解如何打包我的数据并将其发送到串口以接收内容。
答案 0 :(得分:0)
首先,您需要调用函数def__getcrc(self, buf)
来获取程序的返回值。
像这样(它在最底层):
__getcrc(num-self-here, number-buf-here)
我把 num-self-here 和 number-buf-here 放在一起,因为我并不完全了解你的程序是做什么的。
希望它对你有所帮助。