STM32单片机入门学习——第30节: [9-6] FlyMcu串口下载STLINK Utility

news2025/4/13 18:08:47

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做!

本文写于:2025.04.09

STM32开发板学习——第30节: [9-6] FlyMcu串口下载&STLINK Utility

  • 前言
  • 开发板说明
  • 引用
  • 解答和科普
  • 一、FlyMcu串口下载
  • 二、STLINK Utility
  • 问题
  • 总结

前言

   本次笔记是用来记录我的学习过程,同时把我需要的困难和思考记下来,有助于我的学习,同时也作为一种习惯,可以督促我学习,是一个激励自己的过程,让我们开始32单片机的学习之路。
   欢迎大家给我提意见,能给我的嵌入式之旅提供方向和路线,现在作为小白,我就先学习32单片机了,就跟着B站上的江协科技开始学习了.
   在这里会记录下江协科技32单片机开发板的配套视频教程所作的实验和学习笔记内容,因为我之前有一个开发板,我大概率会用我的板子模仿着来做.让我们一起加油!
   另外为了增强我的学习效果:每次笔记把我不知道或者问题在后面提出来,再下一篇开头作为解答!

开发板说明

   本人采用的是慧净的开发板,因为这个板子是我N年前就买的板子,索性就拿来用了。另外我也购买了江科大的学习套间。
   原理图如下
1、开发板原理图
在这里插入图片描述
2、STM32F103C6和51对比
在这里插入图片描述
3、STM32F103C6核心板
在这里插入图片描述

视频中的都用这个开发板来实现,如果有资源就利用起来。另外也计划实现江协科技的套件。

下图是实物图
在这里插入图片描述

引用

【STM32入门教程-2023版 细致讲解 中文字幕】
还参考了下图中的书籍:
STM32库开发实战指南:基于STM32F103(第2版)
在这里插入图片描述
数据手册
在这里插入图片描述

解答和科普

一、FlyMcu串口下载

在这里插入图片描述
我们芯片的串口下载只适配了USART1;
配置BOOT0引脚的跳线帽,拔下来;然后插在右边的两个针脚,配置BOOT0为1;然后按一下复位键,因为STM32只有在刚复位的时候读取BOOT引脚; 那这样芯片就进入BOOTLoder程序了,程序就是不断接收USART1引脚的数据,刷新到主闪存;

在这里插入图片描述
这样这个LED闪烁程序就通过BootLoder成功刷新到主闪存里了;
回到STM32,目前STM32还没有亮起来,这是因为STM32还在执行BootLoader的刷机程序;我们还需要把BootLoder模式切换回来,把BOOT0置0;
然后看到LED闪烁
在这里插入图片描述
第一个问题:BOOT引脚干啥的,为什么这么配置;BootLoader又是干啥的,串口下载的原理是什么?
在这里插入图片描述

在ROM区的0x0800位置,存储的就是编译后的程序代码,你把什么样的程序写到这个位置,STM32就执行什么样的程序;如果想要使用串口下载程序的话,我们只需把程序数据通过串口发给STM32,STM32接收数据,然后刷新到0800这一块位置就行了,但是接收并转存数据,这个过程本身也是程序,如何利用程序实现自我更新,这时一个问题。同样STM32实现程序自我更新就需要一个小机器人,这个小机器人就是BootLoader,是ST公司写好的一段代码,这段程序的存储位置,就是ROM区的最后,1FFF F000;这段区域叫做系统存储器,存储的就是BootLoader,或者叫自举程序,用途程序自我更新,串口下载,在自我更新中,BootLoder接收USART1数据,刷新到程序存储器,这时候主程序就处于瘫痪状态,更新好之后,再启动主程序,执行新程序,这就是串口下载的流程。刷机模式
在这里插入图片描述
01:从1FFF F000开始运行,启动小机器人;
所以说每次切换BOOT引脚之后,都要按一下复位;

第二个问题:每次下载程序都要拔插两边跳线帽,太麻烦了有没有什么解决办法;
想要程序自我更新,必须有一个切换小机器人的过程,BOOT0引脚和REST复位引脚必须得有高低电平变化,那能不能接两条线,当电脑下载时,自动帮我设置一下BOOT0和RES的电平呢,可以的。
在这里插入图片描述
其中RTS和DTR是输出引脚,我们可以用这两个引脚来控制BOOT0和RST,当然外部还需要设计一个控制电路,一般可以用两个三极管开关来进行控制,STM32一键下载电路。
在这里插入图片描述
在这里插入图片描述
只需要最开始和最后执行一次跳线帽;
在这里插入图片描述
生成BIN格式的文件:记录的就是STM32从0800开始存储的程序数据, bin格式是没有地址信息的原始数据文件,之前生成的HEX文件是有地址信息的,FLY下载的时候只能选择HEX文件,
选项字节:也是ROM区最后一小块存储单元,用途是存储一些独立于程序代码的配置参数,

在这里插入图片描述
第一块,就是读保护,刚才说了,为了保护程序的安全,选项字节就有一个参数可以配置读保护,可以看到,设成A5允许读出,设成FF阻止读出,你设置阻止读出,再回到Keil下载程序就会失败,另外在取消读保护时,会清空芯片的程序,这样程序就不会被偷走了,这就是读保护。
第一, 选项字节的数据相当于是世外桃源了,无论程序如何更新,选项字节的数据都可以不变,可以存储不随程序变化而变化的参数,另外还有一个好处,就是可以用上位机很方便地修改,在上位机可以直接修改;
写保护:可以把最后几页保护锁起来,设置写保护之后,就没法再写了,如果想再次写入的话,解除写保护就行了,设置写保护,再下载,如果需要写入保护区的话,就会出错:比如你把最前面几页写保护了,下载一次之后再下载肯定就会出错,而这个软件设计,不能单独写入选项字节,只能下载Flash,顺便写入选项字节,但写保护,下载不了,下载不了,就不能解除写保护,形成死循环了,这个注意一下;
在这里插入图片描述

二、STLINK Utility

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
完成之后LED闪烁,完成下载。
在这里插入图片描述

如果你有芯片被读保护或者写保护锁住了,就可以到这个地方来,解除保护;
在这里插入图片描述
STlink固件更新。

问题

总结

本节课主要了串口的软件,如何用串口下载程序,BOOT的设置和如何实现程序的自我更新,如何配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2331788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

亮相CMEF,美的医疗全维度打造智慧医疗新生态

当下,医疗科技革命的浪潮正汹涌而来,AI技术在中国医疗器械领域迅猛发展,释放出巨大的潜力。 4月8日,在第91届中国国际医疗器械博览会(CMEF)上,2025美的医疗年度新品发布暨中国脊梁守护计划启动…

数据库视图讲解(view)

一、为什么需要视图 二、视图的讲解 三、总结 一、为什么需要视图 视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。 比如,针对一个公司的销售人员,我们只想给他看部分数据&#xff0c…

TQTT_KU5P开发板教程---文件的烧写与程序固化

文档功能介绍 本文档所描述的为文件的烧写固化,利用spi芯片将程序固化带芯片上,可以让开发板在重新上电时也可以跑程序。我们所使用的芯片型号为mt25qu256-spi-x1_x2_x4.本次实验采用的在led_shift项目的基础上将流水灯程序固化到flash芯片上&#xff0c…

进度管理__制订进度计划_资源平衡和资源平滑

本文讲解的资源平衡与资源平滑,是制订进度计划的工具与技术的第3项: 资源优化。 1. 资源平衡 资源平衡是为了在资源需求与资源供给之间取得平等, 根据资源制约因素对开始日期和完成日期进行调整的一种技术。 如果共享资源或关键资源只在特定…

【ISP】ISP pipeline(AI)

ISP Pipeline 全流程概览 ISP(Image Signal Processing,图像信号处理)流程通常从原始 Bayer 数据出发,经过一系列模块处理,逐步完成图像校正和增强,最终生成用于显示或编码的标准图像。常见处理模块包括&a…

RVOS-2.基于NS16550a ,为os添加终端交互功能。

2.1 实验目的 为os添加uart功能,通过串口实现开发板与PC交互。 2.1 硬件信息 QEMU虚拟SoC含有 虚拟NS16550A设备 。 不同的地址线组合(A2、A1、A0)对应的读写模式和寄存器如下所示: 2.2 NS16550a 的初始化 线路控制寄存器&#…

软件学报 区块链论文 截止2025年4月 录用汇总 附pdf下载

截止 2025年4月 软件学报 2024年 区块链论文 录用汇总 附pdf下载 1 Title: 基于多父链辅助工作量证明共识机制的后量子区块链系统 Authors: Key words: 区块链;后量子密码;共识机制;辅助工作量证明 Abstract: 随着量子计算机的发展,对于以传统椭圆曲线数字签名为基石的公…

【MySQL 数据库】增删查改操作CRUD(上)

🔥博客主页🔥:【 坊钰_CSDN博客 】 欢迎各位点赞👍评论✍收藏⭐ 目录 1. CRUD 简介 2. Create -- 新增 2.1 语法 2.2 练习 3. Retrieve -- 检索 3.1 Select -- 查询 3.1.1 全列查询 3.1.2 指定列查询 3.1.3 表达式查询 3.…

pycharm 有智能提示,但是没法自动导包,也就是alt+enter无效果

找到file->settings->editor->inspections 把python勾选上,原来不能用是因为只勾选了一部分。

Linux网络编程——TCP协议格式、可靠性分析

目录 一、前言 二、TCP协议格式 三、TCP的可靠性 TCP协议的确认应答机制 总结 四、TCP协议的缓冲区及流量控制 五、 TCP流量控制 六、TCP报文类型 标记位 一、前言 在上一篇文章中,我们重点介绍了UDP协议格式的一些内容。在本文中介绍的便是TCP协议格式的…

【深度学习】Downstream Model:预训练模型的下游应用与微调技术

Downstream Model:预训练模型的下游应用与微调技术 文章目录 Downstream Model:预训练模型的下游应用与微调技术1 什么是Downstream Model(下游模型)2 预训练模型与下游任务的关系3 微调技术与迁移学习微调的必要性高效迁移学习参…

C# ref out关键字 理解学习记录

ref 在传参是可以以指针的方式传递,而不是传参数的值 举例,函数返回void ,局部变量要传参后得到结果: ref传参前要实例化赋值,而函数体内不一定要赋值 out 传参前不一定要赋值,而函数体内一定要赋值 ,与r…

Python中的AdaBoost分类器:集成方法与模型构建

引言 在机器学习领域,集成方法(Ensemble Methods)是一种通过结合多个基学习器来提高模型性能的技术。AdaBoost(Adaptive Boosting)是集成方法中的一种经典算法,它通过迭代训练多个弱分类器,并将…

11:00开始面试,11:08就出来了,问的问题有点变态。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到8月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…

大模型本地部署系列(1) Ollama的安装与配置

一. Ollama简介 Ollama 是一个 本地化的大模型运行工具,可以让你在自己的电脑(比如Mac、Windows、Linux)上直接下载和运行各种开源的大型语言模型(比如 LLaMA 3、Mistral、Gemma 等),而无需依赖互联网或云…

宝塔面板数据库管理页面打不开,提示405 Not Allowed

宝塔面板数据库的管理按钮打开,提示405 Not Allowed 一般是php版本不匹配。 PHPMyAdmin 4.x PHP 5.2:安装 phpMyAdmin 4.1 PHP 5.3/5.4:安装 phpMyAdmin 4.4 PHP 5.5:安装 phpMyAdmin 4.4 PHP 5.6:安装 phpMyAdmin 4…

文件上传漏洞原理学习

什么是文件上传漏洞 文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。“文件上传” 本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全&#…

数字的乘阶运算

求数字的乘阶: 例如:6的乘阶运算:6*5*4*3*2*1 例如:3的乘阶运算:3*2*1 class Program{static void Main(string[] args){Console.WriteLine("请输入数字:");int num_01 Convert.ToInt32 (Con…

OpenCV——图像融合

OpenCV——图像融合 一、引言1.1 图像融合分类 二、C代码实现三、效果展示3.1 标准球3.2 铝制底座 一、引言 在许多计算机视觉应用中(例如机器人运动和医学成像),需要将来自多幅图像的相关信息集成到一幅图像中。这种图像融合将提供更高的可靠性、准确性和数据质量…

基于 Spring Boot 瑞吉外卖系统开发(四)

基于 Spring Boot 瑞吉外卖系统开发(四) 新增分类 新增分类UI界面,两个按钮分别对应两个UI界面 两个页面所需的接口都一样,请求参数type值不一样,type1为菜品分类,type2为套餐分类。 请求方法都为POST。…