Stm32的bootloader无法使用问题

news/2024/10/4 7:10:30/

Stm32的bootloader无法使用问题

用不了一键下载电路

首先简单地对此处涉及的内容进行介绍:如果stm32的BOOT0引脚为低电平时,系统从FLASH中启动,而如果BOOT0引脚为高电平,且BOOT1为低电平时,系统从自举程序(bootloader)中启动.

我在自制照相机设计中加入了ISP一键下载电路,如下图所示,当CH340-RTS拉低,也就是Q1的基极为低电平,同时Q1的发射极接3V3,此时Q1导通,故集电极的BOOT0被拉高;CH340-RTS保持低电平不变,当CH340-DTR被拉高,此时Q2导通,集电极电平被发射极拉低,也就是NRST引脚拉低,单片机复位(此时BOOT0为高电平)进入自举程序.

在这里插入图片描述

此处设计与商家开发板资料中基本一致(除了没有在D1和NRST网络中添加1K的限流电阻),但是当我用Flymcu上位机却无法读取到芯片的信息,而使用ST-LINK能正常烧录也可以调试,说明芯片能正常的工作,并且我在代码中添加了printf重定向,测试串口正常工作,结果是串口助手能够正常显示打印字符串.

几天的原因排查

开始我觉得可能是三极管坏了,于是拿万用表去排查三极管(将万用表调至二极管挡,NPN:黑笔放到基极,红笔放到另外两极,PNP:红笔放到基极,黑笔放到另外两极,如果此时示数为±0.7V,那么三极管未损坏,如果为0V则烧了),测出来两个三极管都正常,问题不在三极管这.

在网上看了几篇博客之后,我认为可能是单片机没有正确的复位,因此用示波器去观察NRST,如下图所示复位的脉冲约100ms左右,而单片机复位信号仅需要3ms,那么问题也不出在这.

在这里插入图片描述

有没有可能是单片机虚焊了?我打开相机并设置为微距模式,仔细观察,发现有个引脚(VDD_2)翘起来的,然后赶紧拿烙铁上锡.我以为此时问题就能解决了,但是事实仍是无法识别.

到这里,我开始怀疑是芯片的原因,在keil中显示为0X1BA01477,国产芯片一般是"0X2BA01477",那么这应该不是国产打磨的芯片.我怀疑有可能是翻新的芯片,所以还是焊了新的芯片,但是问题依旧没有解决.

在这里插入图片描述
)

CH340C的供电

上网搜索了很多帖子,几乎都尝试了一遍,但是并没有解决问题.没有头绪的我突然想起在还没有测试RX,TX引脚的电平,我拿示波器先测了单片机的TX引脚,显示为3.4V,这没有问题,然后又勾了一下RX引脚(CH340的TX引脚),电平竟然为4.8V左右,显然这是不正常的.

因此我上网搜了一下CH340C的工作方式,如果是5V供电那么需要"V3"引脚串电容接在GND上,而3.3V供电需要将"V3"引脚接在VCC上.我又重新看了下原理图,使用的供电电压是5V,所以CH340的TX输出应该也是5V,超出了单片机正常工作电压.

在这里插入图片描述

总结

实际上stm32能进入bootloader,但是由于CH340C是5V供电,导致无法正常通信,所以会无法识别芯片信息.


http://www.ppmy.cn/news/1534283.html

相关文章

ES索引备份

#!/usr/bin/env python # -*- coding:utf-8 -*-""" /************************************************************** **************************************************************/ 获取ES中所有的文档数据 filename data_es.py python3 ""&q…

React返回上一个页面,会重新挂载吗

在 React 中,当你使用 React Router 或其他导航方法返回到上一个页面时,默认情况下,返回的页面会重新挂载。也就是说,组件会重新执行它的生命周期方法(或钩子函数),例如 useEffect、useState 的…

PHP反序列化8(phar反序列化)

考点8&#xff1a;phar反序列化 <aside> &#x1f4a1; 使用条件 </aside> 文件上传时&#xff0c;不必要.phar后缀&#xff0c;文件上传不是难点&#xff01;&#xff01;&#xff01;&#xff08;phar伪协议自动解析成.phar文件&#xff09; phar文件本质上是…

【深度学习基础模型】液态状态机(Liquid State Machines, LSM)详细理解并附实现代码。

【深度学习基础模型】液态状态机&#xff08;Liquid State Machines, LSM&#xff09;详细理解并附实现代码。 【深度学习基础模型】液态状态机&#xff08;Liquid State Machines, LSM&#xff09;详细理解并附实现代码。 文章目录 【深度学习基础模型】液态状态机&#xff0…

Tiny Transformer:从零开始构建简化版Transformer模型

引言 自然语言处理&#xff08;NLP&#xff09;与计算机视觉&#xff08;CV&#xff09;有显著差异&#xff0c;各自任务的独特性决定了它们适用的模型架构。在CV中&#xff0c;卷积神经网络&#xff08;CNN&#xff09;长期占据主导地位&#xff0c;而在NLP领域&#xff0c;循…

Nagle 算法:优化 TCP 网络中小数据包的传输

1. 前言 在网络通信中&#xff0c;TCP&#xff08;传输控制协议&#xff09;是最常用的协议之一&#xff0c;广泛应用于各种网络应用&#xff0c;如网页浏览、文件传输和在线游戏等。然而&#xff0c;随着互联网的普及&#xff0c;小数据包的频繁传输成为一个不容忽视的问题。…

mac配置python出现DataDirError: Valid PROJ data directory not found错误的解决

最近在利用python下载SWOT数据时出现以下的问题&#xff1a; import xarray as xr import s3fs import cartopy.crs as ccrs from matplotlib import pyplot as plt import earthaccess from earthaccess import Auth, DataCollections, DataGranules, Store import os os.env…

C++学习,信号处理

C信号处理&#xff0c;依赖于操作系统提供的API。信号处理主要用于响应外部事件&#xff0c;如中断信号&#xff08;如SIGINT, SIGTERM等&#xff09;&#xff0c;这些信号可以由操作系统、其他程序或用户生成。 在Unix-like系统&#xff08;如Linux和macOS&#xff09;中&…