STM32支持仿真器和串口下载程序。将要介绍的内容,属于串口下载,即我们通常说的ISP下载。
手动ISP下载程序,我们已经知道了,控制BOOT0引脚实现。STM32上电,会自动检测BOOT0引脚是什么电平,如果是高电平,等待用户下载程序;如果是低电平,运行用户之前下载到单片机的程序。所以我们需要把BOOT0引脚引出,然后控制其接地或接VCC来下载程序或者运行程序。在调试过程中,我们需要不断的控制BOOT0,非常麻烦。那么,自动ISP就该出场了。
自动ISP,把BOOT0与地直接连接,那么每次上电就会运行程序,而且只要点击电脑上的“下载”按钮,就开始下载程序,下载完程序,就开始执行。实现此目的,需要借助串口握手信号DTR和RTS。
DTR连接RESET(复位引脚),控制复位,RTS连接BOOT0,用来控制程序运行或者等待下载。
下面说明如何用USB转TTL芯片实现STM32自动ISP。CH340芯片如下图所示:
CH340芯片,DTR和RTS引脚在一般情况下是高电平,低电平有效。因为STM32的RESET引脚,也是一般情况下是高电平,低电平复位,所以DTR可以与RESET直接连接。但是BOOT0是高电平下载程序,低电平运行程序,正好与RTS相反,所以我们需要把它反相,加一个NPN三极管即可。电路如下图所示:
ISP软件的选择:
看了上图的选择,有些人一定会产生疑虑。按道理应该是低电平复位,然后低电平进入BOOTLoader呀。但是,有一点需要注意,它这里讲的高低电平,是针对电脑原始的9针串口的,也就是“232电平”,我们用的USB转TTL芯片是“TTL电平”,正好相反。
下载过程和结果如下图所示:
注意:CH340在刚上电,稳定需要几秒钟时间,在此期间,DTR引脚会有两次或者三次的变低情况,这样会引起单片机上电后复位两三次,稳定后不会影响程序运行。如果不想让单片机上电复位好几次,上电的时候把DTR与RESET断开即可。
关键字:STM32 单片机
引用地址:
如何让STM32单片机实现自动ISP下载
推荐阅读最新更新时间:2024-11-11 17:07
单片机接收命令发送脉冲
//=========================================================== // step motor 串口通信G代码 // #include REG51.H #include string.h #define uchar unsigned char #define uint unsigned int #define Gcode_LEN 10 //数据长度G01X12345$ (10char) sbit Xpul = P0^0; //axis X clk sbit Xdir = P0^1; //axis X CCW uint Xmove; /
[单片机]
贸泽率先独家备货STMicroelectronics的STM32 LoRaWAN 探索板
2017年2月24日 – 最新半导体和电子元件的全球授权分销商贸泽电子(Mouser Electronics) 即日起率先备货STMicroelectronics (ST)的STM32 LoRaWAN™ 探索板。这款新型探索套件与可从贸泽电子订购的Arduino兼容I-NUCLEO-LRWAN1 STM32 LoRa™扩展板一起作为一个平台,用于了解和评估基于LoRa和FSK/OOK 射频 (RF) 通信的解决方案。 贸泽电子独家备货的 ST STM32 LoRaWAN探索套件基于一体化开放式 Murata Type ABZ模块,支持低功率广域网(LPWAN) 和LoRaWAN 远程无线协议。Type ABZ模块包
[单片机]
STM32学习笔记(4):通用定时器基本定时功能
TIMER基本定时功能 1.STM32的Timer简介 STM32中一共有11个定时器,其中2个高级控制定时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。其中系统嘀嗒定时器是前文中所描述的SysTick,看门狗定时器以后再详细研究。今天主要是研究剩下的8个定时器。 定时器 计数器分辨率 计数器类型 预分频系数 产生DMA请求 捕获/比较通道 互补输出 TIM1 TIM8 16位 向上,向下,向上/向下 1-65536之间的任意数 可以 4 有 TIM2 TIM3 TIM4 TIM5 16位 向上,向下,向上/向下 1-65536之间的任意数 可以 4
[单片机]
STM32单片机的ISP一键下载
ISP就是In System Programming在线系统编程,最常用的就是通过单片机的串口将程序HEX文件下载到内部FLASH中,单片机重启时就执行内部FLASH中的程序。根据STM32的数据手册,STM32的启动方式和BOOT引脚有关 MCUISP软件是STM32单片机ISP下载程序的软件,就像我们用STC单片机ISP下载程序时通过STCISP软件一样,下载程序时的步骤都是类似的,无非就是选择好串口和波特率,加载HEX文件,选择附加选项后再烧录程序即可。 ISP普通烧录 根据上表所示,我们用STM32的串口下载程序的步骤为: 1.电脑通过USB线连接STM32的串口(因为在STM32开发板上已经设计了USB转串口电路,常
[单片机]
采用MCU、CAN控制器和收发器实现燃料电池汽车空调智能节点的设计
在能源日趋紧张、空气污染日益严重的今天,开发具有自主知识产权的新型燃料电池汽车是我国汽车产业的一个重要飞跃和里程碑,也是国家重点扶持的主要领域之一。燃料电池汽车与传统燃油汽车相比具有环保、节能(氢气为燃料)、运行平稳无噪声等特点。燃料电池汽车系统的核心是它的动力系统,即燃料电池发动机,同时配备高功率锂离子电池,能够回收下坡和制动能量。整个汽车系统由若干控制单元组成,各单元通过汽车总线彼此相连,其中空调控制系统是这种新型能源汽车的一个辅助控制单元,但它也是汽车系统的一个重要组成部分。本文将给出一种采用通用微控制器(MCU)和独立CAN控制器和收发器为核心的智能节点,完成与汽车系统之间的通信和控制由数字信号处理器DSP2407为控制芯
[嵌入式]
51单片机的中断控制
51系列单片机有5个中断源,2个优先级,可以实现二级中断服务嵌套结构。 现在很多兼容51的单片机已经有4个优先级(或更多)和更多的中断源了。 --------------------- 想要研究中断的嵌套,应该从中断优先级入手。 一些资料中,把有关中断优先级的中断响应原则,写成如下三条: 1、CPU同时接收到几个中断申请时,首先响应优先级级别最高的中断请求; 2、正在进行的中断过程不能被新的同级或低优先级的中断请求所中断; 3、正在进行的低优先级中断过程,能被高优先级中断请求所中断。 中断优先级的设置,是在IP寄存器中进行,IP称为中断优先级控制寄存器。 把IP中的某位置为1,则相应的中断源为高优先级;为0,则为低优先级。 当把5
[单片机]
STM32—PWM的产生
1. TIMER输出PWM基本概念 脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。一般用来控制步进电机的速度等等。 STM32的定时器除了基本定时器TIM6和TIM7之外,其他的定时器都可以用来产生PWM输出,其中高级定时器TIM1和TIM8可以同时产生7路的PWM输出,而通用定时器也能同时产生4路的PWM输出。 1.1 PWM输出模式 STM32的PWM输出有两种模式,模式1和模式2,由TIMx_CCMRx寄存器中的OCxM位确定的(“110”为模式1,“111”为模式2)。
[单片机]
GD32 MCU电源复位和系统复位有什么区别
GD32 MCU的复位分为电源复位和系统复位,电源复位又称为冷复位,相较于系统复位,上电复位更彻底,下面为大家详细介绍上电复位和系统复位的实现以及区别。 电源复位包括上电/掉电复位或者从standby模式唤醒产生的复位,电源复位将会复位除备份域以外的所有寄存器以及SRAM,如果软件上希望实现电源复位,可以通过GPIO控制电源或者通过进入standby之后通过看门狗唤醒实现。 系统复位实现的方式比较多,包括外部引脚复位、独立看门狗复位、窗口看门狗复位、内核软复位等,系统复位电路如下图所示,内部系统复位会至少产生20us的NRST低电平,进而被内部电路捕捉到,实现系统复位。因而此处就要有个要求,外部电路不能影响内部拉低NRST
[单片机]