首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在循环中发送起始地址,增量为64字节,使用pyserial

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

Stack Overflow用户
提问于 2018-07-13 16:37:06
回答 1查看 238关注 0票数 0

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

我试着用Pyserial写开始地址。启动地址以字节的形式发送,如下所示

1块0x00,0x40,0x00

2块0x00,0x40,0x40

3 chunck 0x00,0x40,0x80

将其增加64,并使用ser.write编写

它打印错误的数据,并以1字节本身作为40,80而不是最后一个字节的增量。任何帮助都是非常感谢的。

代码语言:javascript
复制
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  
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-13 17:18:59

代码语言:javascript
复制
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))

我猜..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51329509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档