(纯干货)基于STM32F103RCT6的BootLoader和OTA升级之B区代码的实现(八)

(一)B区实现过程

1.首先需要知道的是stm32上电后,需要在2s内通过串口调试助手发送’q’,进入Bootloader模式。然后对当前版本号进行设置。并且配置好串口转wifi模块的参数(wifi连接名称和密码)。配置好相关参数后重启stm32,程序会自动跳转到B区中,B区需要连接上阿里云平台。成功连接后,stm32会上报当前固件版本号,并且每隔60s发送保活包。当阿里云平台收到当前固件版本号后,会与自身的版本号进行对比,如果自身的版本号大于收到的版本号,那么就下发最新固件给stm32。stm32收到下发的固件就会把它存储到C区中,再把OTA升级标志位置1。stm32连接阿里云平台的步骤如下:
① 在BootLoader中连接wifi(有上网的功能)
② 在B区中构建应用层MQTT协议第一个报文:CONNECT报文
③ 发送CONNECT报文鉴权连接,并判断服务器回复的CONNECT报文是否正确
④ 构建和订阅OTA升级相关的SUBCRIBE报文
2.成功连接阿里云平台后,就开始上传当前固件版本号
在这里插入图片描述
3. 定时器实现每60s发送保活包”0xc0 0x00”。想要和阿里云平台进行数据交互,就必须遵循阿里云的规则。阿里云规定,在一定时间内设备需要发送保活包(“0xc0 0x00”)。只有发送了保活包,设备才不会离线。
4. 定时器实现源码
① timer.h
在这里插入图片描述
② timer.c
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小柚的小小龙

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值