STM32串口升级协议与Bootloader详解
5星 · 超过95%的资源 需积分: 10 17 浏览量
更新于2024-07-30
3
收藏 2.08MB DOC 举报
"AN3155应用笔记主要讲解了如何使用串口(USART)进行固件升级,涉及启动代码序列、波特率选择以及 bootloader 的命令集等关键知识点。"
在AN3155的应用笔记中,串口(USART)Bootloader代码序列是关键部分,用于实现芯片间的升级。当STM32微控制器进入系统内存启动模式后,它会配置好自身,并通过USARTx_RX引脚监听0x7F数据帧,该帧由一个起始位、0x7F数据位、偶校验位和一个停止位组成。系统使用Systick定时器来测量数据帧的持续时间,从而计算出相应的波特率,这个波特率与系统时钟直接相关。
波特率的选择至关重要,启动代码会根据接收到的第一个字节的长度来计算USARTx的串行波特率。为了保证数据传输的准确性,波特率必须在一定的范围内,误差不能超过2.5%。计算波特率误差的公式涉及到CPU时钟和主机波特率,误差随着主机波特率增加而增大。最小波特率为1200,若低于这个值会导致SysTick定时器溢出,无法正确初始化USARTx;最大波特率为115200,所有波特率都需在这个区间内。
Bootloader的命令集包括多种功能,如数据传输、设备擦除等。在命令执行过程中,如果遇到拒绝命令或错误,Bootloader会发送NACK字节并返回检查命令。对于具有读保护(RDP)功能的设备,只有特定的命令子集在RDP激活时有效,其他命令会被拒绝。"Erase"(0x43)和"Extended Erase"(0x44)是两种不同的擦除命令,设备仅支持其中一种。通信安全是另一重点,PC到外设的通信会通过校验和验证,确保数据传输的完整性。
总结来说,AN3155应用笔记详细介绍了使用STM32的USART Bootloader进行固件升级的过程,涵盖了波特率计算、命令控制及通信安全等多个技术要点,为开发者提供了实用的指导。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2020-05-15 上传
2019-09-15 上传
2022-08-03 上传
2010-04-18 上传
2022-04-02 上传
2018-11-05 上传
ycd521
- 粉丝: 2
- 资源: 5
最新资源
- pwmetrics:渐进式Web指标触手可及
- 断电
- AzureDevOps_Terraform_ResourceType_AutoApprovals
- Excel模板大学考试表.zip
- HHT_配电网故障_故障电弧_电弧故障_电网HHT变换_电弧
- gcForest:这是“深林”论文的正式实施
- 数据库课程设计——企业仓库存储管理系统.zip
- run-buddy
- Bouc Wen_Bouc_Wen_bouc_bouc-wen模型_Bouc-wen_Boucwen
- konsum-进口商
- ode_model_error
- react-drag-drop-container:适用于鼠标和触摸设备的ReactJS拖放功能
- Excel模板大学考试成绩报告表.zip
- Model-Based-Design-Maturity,图像加密的matlab源码,matlab
- curl源文件curl-8.5.0.zip
- ayapingping-js:NodeJS中的入门包框架,用于构建REST API应用程序