使用pyserial以64为增量在循环中发送起始地址作为字节

Sending start address in a loop in increments of 64 as bytes with pyserial

在程序中我先发送结束地址,然后发送擦除删除所有以前的数据。比发送命令来闪存新数据,然后发送起始地址到闪存数据。起始地址从 0x4000 开始,直到数据结束,以 64 为增量。使用上面的代码,我想将 0x4000 作为 0x00、0x40、0x00 发送,而不是下一次将其递增 64,即 0x4040 作为 0x00、0x40、0x40 并继续递增按 64(0x40) 直到结束地址

我正在尝试用 Pyserial 写入起始地址。起始地址以字节形式发送如下

1 个块 0x00、0x40、0x00

2 块 0x00、0x40、0x40

3 块 0x00、0x40、0x80

增加 64 并写入 ser.write

它打印了错误的数据,它在 1 个字节中的增量本身是 40,80 而不是最后一个字节。感谢任何帮助

offset = 0
size = 64
Chunk = 0
counter = 0
Total_size = 147456

while(currentoffset < Total_size):
    TempBuff  = []
    No_Of_Bytes = Chunk * 64
    Address = 0x4000 + (Chunk * 64)

    for i in  range(str(hex(Address)).__len__(),2,-2):
        a = Address & 0xFF

        if (str(hex(a)).__len__() < 3):
            b = format(a, '#04x')

        else:
            b = hex(a)

        Address = Address >> 8
        TempBuff.append(b)
        ser.write(b)

        if TempBuff.__len__() < 3:
            ser.write("0x00")
        for indx in range(TempBuff.__len__()-1,-1,-1)  :
            ser.write(TempBuff[indx])

Chunk = Chunk + 1
offset += size  
start_address = 0x4000
end_address = 0x8000
block_size = 64
for addr in range(start_address,end_address,block_size):
    addr_as_hex6 =  "%06x"%addr
    c1,c2,c3 = addr_as_hex6[:2],addr_as_hex6[2:4],addr_as_hex6[4:]
    print("SEND: 0x%s 0x%s 0x%s"%(c1,c2,c3))

我猜...