STM32F4的串口烧录问题

news2024/11/26 8:59:27

前言:以前总是画F1的板子,第一次接触F4的芯片,画板子时串口接在了PB6、PB7上,导致烧录程序、检测芯片失败的情况。其原因是由于F1的USART1对应(PA9\PA10),而F4的USART1则对应了(PA9\PA10)和(PB6\PB7)。两个对应搞得不知道连接哪一个,造成错误。

查阅参考手册,发现与STM32的自举配置有关。

以便我以后查阅,便先说重要的问题。


STM32F4自举配置

在 STM32F4xx 中,可通过 BOOT[1:0] 引脚选择三种不同的自举模式。

内嵌的自举程序

嵌入式自举程序模式用于通过以下串行接口重新编程 Flash:

  • USART1(PA9/PA10)  (这里看出,由于用错了端口,所以串口下载程序失败)
  • USART3(PB10/11 和 PC10/11)
  • CAN2(PB5/13)
  • USB OTG FS(PA11/12) 从设备模式(DFU:器件固件升级)。

STM32F1自举配置

和F4类似:

在STM32F10xxx里,可以通过BOOT[1:0]引脚选择三种不同启动模式。(可能不同人翻译,稍微和F4手册中的说法不同,但实质都是一样的)

对于小容量、中容量和大容量的产品而言,可以通过USART1接口启用自举程序。(只能通过USART1接口,而且USART1只对应PA9\PA10,这就是以前F1没出错的原因吧!)


启动模式

BOOT0=1,BOOT1=0:系统存储器

从系统存储器0下FFF0000开始执行代码。系统存储区存放着系统bootLoader,出厂时,官方固化在单片机中的一段代码,用户无法修改的。在STM32中,常用的串口下载,DFU就是系统bootLoad中的功能。

BootLoader,也就是ISP的程序。

ISP:In-System Programming,在线编程。

使用串口下载程序时,单片机从系统存储器启动,运行出场预置的bootLoader程序,接收并写入串口发送过来的数据。

BOOT0=0,BOOT1=x:主Flash

从Flash启动,将主Flash地址0x08000000映射到0x00000000,这样代码启动之后就相当于从0x08000000开始。

这种操作模式下,应该是ICP编程。

ICP:In-circuit programmer,在电路编程。

在电路编程使用SWD/JTAG接口进行编程。

主Flash是STM32内置的Flash,一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序。

BOOT0=1,BOOT1=1:内置SRAM

从SRAM启动,将RAM地址0x20000000映射到0x00000000,这样代码启动之后就相当于从0x20000000开始。

此模式一般用于调试。

STM32F4参考手册

 


STM32F10xxx Bootloader

手册参考:STM32 microcontroller system memory boot mode - Application note

F103只支持USART:


STM32F40xxx Bootloader

F4所支持的接口就多的多了。需要根据芯片型号来进行判断。


单片机编程分类

ISP:In-System Programming,在线编程。

ICP:In-circuit programmer,在电路编程。

IAP:In-Application Programming,在应用中编程。

此部分不做介绍,后续有兴趣再对此文章进行更新。

说白了,有今天这个问题,主要是没有仔细看手册的结果。

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

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

相关文章

linux安装jdk教程(手动安装/yum安装) 保姆级教程

yum安装jdk方式: 1、查询要安装jdk的版本 命令:yum -y list java* 2、选择你需要安装的版本号 命令:yum install -y 你选择的版本号 ​ 3、 查询jdk版本 命令:java -version (有版本证明安装成功了......) 手动安装方式&#…

Kibana:运用 transform 来实现服务质量目标(SLO)的可视化

Kibana 是一个有用的工具,用于监控应用程序和服务以确保它们在指定的服务级别目标内运行。 服务质量指标 (SLI) 是服务的可衡量方面,例如错误代码和延迟。 服务质量目标 (SLO) 定义应用程序或服务预期如何按照 SLI 衡量的方式执行,并在某种程…

《集体智慧编程》笔记(3 / 12):发现群组

Discovering Groups 文章目录监督学习和无监督学习监督学习无监督学习单词向量对博客用户进行分类对订阅源中的单词进行计数分级聚类绘制树状图列聚类K-均值聚类针对偏好的聚类获取数据和准备数据BeautifulSoup收集来自Zebo的结果定义距离度量标准对结果进行聚类以二维形式展现…

二、导论——可解释性机器学习(DataWhale组队学习)

目录引言ZFNet的网络结构可视化反卷积反池化反激活反卷积训练细节特征可视化特征演化特征不变性局部遮挡测试敏感性分析相关性分析消融实验宽度影响深度影响迁移学习能力有效性分析总结引言 纽约大学ZFNet,2013年ImageNet图像分类竞赛冠军模型。对AlexNet进行改进的…

Redis框架(十三):大众点评项目 达人探店 博客功能实现

大众点评项目 达人探店 博客功能实现需求:达人探店 博客功能实现业务实现总结SpringCloud章节复习已经过去,新的章节Redis开始了,这个章节中将会回顾Redis实战项目 大众点评 主要依照以下几个原则 基础实战的Demo和Coding上传到我的代码仓库…

送书福利!全自主IDE的《运动控制系统应用与实践》

功能齐全、稳定性强、简单易用的实时工控软件平台是成就工业控制的重要工具。运动控制作为工业控制领域的核心技术之一,在3C电子、锂电新能源、装配、激光加工、点胶、贴附、工业机器人等工业应用场景中发挥着巨大作用。 正运动技术自主自研的ZDevelop是国内少有的…

腾讯工作3个月,做软件测试的一些感悟

普通二本计算机专业毕业,从毕业后,第一份接触测试的工作是在一家通讯小公司,大部分接触的工作是以功能测试为主,一直都是几千块钱工资,还一度被派出差,以及兼职各种产品、运维、运营的活,感觉自…

基于FPGA的spi通信接口VHDL设计

目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布

Coretex_M0工程创建

本文档介绍如何创建一份基于成熟库函数的新工程! 类似于如下的工程: 如上的MCU表示的是NXP公司封装好的关于芯片的库函数,BSP表示的是板级支持开发包,是和具体开发板外设的设备有关。 那么如果我们需要我们的工程包含这样的库函数&#xff0c…

小程序在线生成平台怎么使用?

其实目前小程序在线生成平台是比较主流的,很多小伙伴看到一些制作小程序教学,都会有“这个软件怎么下载?”、“怎么做?”之类的问题。其实小程序在线生成平台一般都不需要下载的,它主要是在网页中打开工具进行在线制作…

Jenkins在windows平台下,让Powershell、批处理可以拉起进程并保持

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:无尽的折腾后,终于又回到了起点,工控,我来了 !前言 没有人喜欢windows平台下的自动化构建,一如多年前没人喜欢linux的桌面一样。 最近在考虑wi…

Back Propagation 反向传播

文章目录3、Back Propagation 反向传播3.1 引出算法3.2 非线性函数3.3 算法步骤3.3.1 例子3.3.2 作业13.3.3 作业23.4 Tensor in PyTorch3.5 PyTorch实现线性模型3.6 作业33、Back Propagation 反向传播 B站视频教程传送门:PyTorch深度学习实践 - 反向传播 3.1 引…

联通数科一面+二面+面谈 经验分享 base济南

联通数科一面二面面谈 10.8 投递简历(大数据开发岗位 base西安 有成都岗? 我怎么没看到) 10.10-12 笔试 11.05 一面 有五六个面试官 问了问题的有两个 介绍了下项目,问了些每个组件的基础知识,都是大数据的基本八股…

深聊性能测试,从入门到放弃之: Windows系统性能监控(三)任务管理器介绍及使用。

任务管理器1、引言2、任务管理器2.1 打开方式2.2 介绍2.2.1 定义2.2.2 进程2.2.3 性能2.2.4 应用历史记录2.2.5 启动2.2.6 用户2.2.7 详细信息2.2.8 服务3、总结1、引言 关于Windows系统性能监控的前两篇 《Windows系统性能监控(一) 性能监视器介绍及使用》《Windows系统性能…

深圳IB学校哪家强?入学标准如何?

我们都知道,孩子就读哪所学校,学校开设什么课程,这会直接影响孩子的留学之路和未来。 所以一般情况下,选择国际学校都是分两步走,先是需要是根据孩子的个性特点去选择能够适应的课程体系,再根据学校开设课程…

【论文阅读】inception v1学习总结

【论文阅读总结】inception v1总结1. 摘要2. 序言3. 文献综述4.动机和高层考虑4.1提高深度神经网络性能的最直接方法4.1.1 增加模型的大小4.1.2 解决增加模型大小导致的缺点思路5.结构详述5.1 Inception架构的主要思想5.2 原生inception块问题5.3 解决通道数增加问题5.4 1*1卷积…

Golang 【basic_leaming】基本数据类型

阅读目录Golang 数据类型介绍整型特殊整型unsafe.Sizeof 查看内存所占用大小int 不同长度直接的转换数字字面量语法(Number literals syntax)(了解)浮点型布尔值字符串字符串转义符多行字符串字符串的常用操作修改字符串byte 和 r…

PYNQ -z2 与 PC主板网口直连

文章目录1.下载映像文件并烧录到板子2. 将usb和网线连接到电脑上3. 使用xshell新建串口通信连接到板子4. 查看板子ip ifconfig命令5. 将pc的网络改成与板子同一个网段6. 通过ip地址访问1.下载映像文件并烧录到板子 可以参考 烧录镜像 2. 将usb和网线连接到电脑上 3. 使用xshe…

jsp+ssm计算机毕业设计毕业论文管理系统【附源码】

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JSPSSM mybatis Maven等等组成,B/S模式 Mave…

【函数】你上街买菜用的着函数吗?

前言 函数是什么 每个C程序都至少有一个函数,即main主函数 ,如果程序的任务比较简单,全部的代码都写在main函数中,但是在实际开发中,程序的任务往往比较复杂,如果全部的代码都写在main函数中,…