使用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))
我猜...
在程序中我先发送结束地址,然后发送擦除删除所有以前的数据。比发送命令来闪存新数据,然后发送起始地址到闪存数据。起始地址从 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))
我猜...