xgp001 发表于 2023-1-12 13:42:06

ISP远程升级中上位机端读取文件后如何下发到串口?

ISP远程升级中上位机端读取文件后,是直接byte数组整体下发,还是需要转换为UTF8编码然后一行一行的下发

zhp 发表于 2023-1-12 14:07:08

本帖最后由 zhp 于 2023-1-12 14:13 编辑

以命令包为单位进行下载
命令包的格式为:命令头+长度信息+命令信息+地址信息+数据长度+代码数据+校验和+命令尾

命令包中的代码数据为以字节单位的原始二进制代码,不需要另外进行编码转换

xgp001 发表于 2023-1-12 17:04:35

命令头和命令尾以及命令信息可以是我自定义的吧?地址信息可以不要吗?

xgp001 发表于 2023-1-12 17:11:27

如果要升级的hex文件比较大,需要拆分成1Kb的字节内容打包发送的吧?然后单片机接收后自行拼接byte数组,再进行升级吧

xgp001 发表于 2023-1-12 17:15:08

官网上下载的STC15-UART在线升级包中有app程序,只是这个作为串口程序没有源程序不知道通过串口的下载机制,而单片机源程序没有注释,解读很费劲

zhp 发表于 2023-1-12 17:20:06

xgp001 发表于 2023-1-12 17:04
命令头和命令尾以及命令信息可以是我自定义的吧?地址信息可以不要吗?

官方提供的范例是这个格式
有提供源码
你可以根据自己的需求修改任意修改

zhp 发表于 2023-1-12 17:23:19

xgp001 发表于 2023-1-12 17:11
如果要升级的hex文件比较大,需要拆分成1Kb的字节内容打包发送的吧?然后单片机接收后自行拼接byte数组,再 ...

由于受单片机缓冲区的限制,每个数据包最大最只能包含128字节的数据
如果hex文件比较大,必须分成多个数据

zhp 发表于 2023-1-12 17:25:43

xgp001 发表于 2023-1-12 17:15
官网上下载的STC15-UART在线升级包中有app程序,只是这个作为串口程序没有源程序不知道通过串口的下载机制 ...

这个代码只是STC提供给客户的一个做自己的ISP的范例
关键代码并没有多少,需要您静下心来认真研究

xgp001 发表于 2023-1-13 09:31:47

zhp 发表于 2023-1-12 17:23
由于受单片机缓冲区的限制,每个数据包最大最只能包含128字节的数据
如果hex文件比较大,必须分成多个数 ...

这里说的128字节是包括:命令头+长度信息+命令信息+地址信息+数据长度+代码数据+校验和+命令尾,这些内容还只是代码数据每包128字节?

zhp 发表于 2023-1-13 10:15:14

xgp001 发表于 2023-1-13 09:31
这里说的128字节是包括:命令头+长度信息+命令信息+地址信息+数据长度+代码数据+校验和+命令尾,这些内容 ...

代码数据
页: [1] 2
查看完整版本: ISP远程升级中上位机端读取文件后如何下发到串口?