利用stm32单片机的休眠模式,使单片机间歇的休眠从而实现低功耗的目的。往往会出现进入休眠后无法唤醒,导致下一次程序烧不进去。通常的解决办法是:一般的开发板或单片机最小系统都会有复位键,按住复位键,点下载,然后松开复位键即可。
我遇到的问题是:误入了stm32(STM32L051C6T6)的STOP模式,又没有写入相应的唤醒方法,导致后续的程序不能下载。使用MDK5 点击load时总会出现No target connected。自己设计的最小系统又没有加入复位键。。。
有以下几种解决办法:
1、可以将单片机的NRST引脚引出来,外接复位键。(关于引脚查看可用ST官方软件STM32cubeMX,很方便)
2、通过ISP的方式下载程序,必须将boot0接高电平,boot1(PB2)接低电平,然后必须断电后重启,此时单片机会进入ISP模式,就可以通过串口1(一般单片机都是只有串口1才可下载程序)再用flymcu等软件烧入hex文件就可以了。
关于boot0和boot1,在每个stm32单片机都会有这两个引脚,这两个引脚在复位时的电平状态决定了芯片在复位后从哪个区域开始执行程序。
boot1=x boot0=0从用户闪存启动,这是正常的工作模式。
boot1=0 boot0=1从系统存储器启动(进入ISP模式)。
boot1=1 boot0=1从内置SRAM启动,这种模式可以用于调试。
如此一来,单片机无法进入正常的工作模式,就无法进行休眠,就可以通过ISP来下载程序。
3、使用STlink烧写程序,STlink至少要接4根线(SWDIO、SWCLK、GND、SW-RST),一般的下载程序只需要前三根就可以了,但是以防出现休眠无法唤醒的情况,这时有复位键就可以将SWDIO和SWCLK重置,如果板子设计没有与SW-RST相对应的,此时需要把单片机上的NRST引出来接到SW-RST上。下载程序之前boot0接高电平,boot1不用管(也需要断电后重启)。
下载配置这里按如下配置,RESET那里HW RESET和SYSRESETREQ任选一个。
配置好之后load一个空程序即可,不要再烧一个休眠的程序了,之后就可以正常烧程序了。
总结:由于板子设计等原因,使用的是第三个方法,前两个方法也都是可用的。
关键字:stm32 单片机 休眠模式 下载程序
引用地址:
stm32单片机进入休眠模式后无法下载程序等问题的解决
推荐阅读最新更新时间:2024-03-16 16:20
STM32移植UCGUI实现GPS
在MDK环境下,终于将3.90版本的UCGUI移植到STM32下了,在网上看到的都是例程代码,很少看到有关于在STM32下移植UCGUI的教程方法,为了方便大家,特写此移植方法,大家可以借鉴(有错误之处,望大家指点出来共同讨论!) 移植步骤: 第一步:首先,得把你的TFT底层驱动写好,既在裸机下,可以正常显示。 第二步:加入UCGUI程序包。 第三步:配置LCDConf.h GUIConf.h GUITouchConf.h(由于我的液晶不带触摸功能,此配置在此不讲。) 配置LCDConf.h文件如下: #ifndef LCDCONF_H #define LCDCONF_H #define LCD_XSIZE (160) //配置T
[单片机]
基于单片机的电动车蓄电池智能管理系统设计
引言 电动汽车的无(低)污染优点,使其成为当代汽车发展的主要方向。电动汽车的发展需要解决两大难题,即能量存储和动力驱动。由于短期内动力电池储能不足的问题难以解决,使能量管理技术成为电动汽车发展的关键。在传统充电技术中,常用的恒压充电、恒压限流充电、恒流充电等模式,都是由人工控制充电过程,大多存在着严重的过充电现象。充电质量的好坏,直接影响蓄电池的使用寿命。而新型蓄电池智能管理系统的设计,就是为了在线检测动力电池状态,提高充电质量和效率,使操作人员只担任辅助性工作。 740)this.width=740" border=undefined> 图1系统原理框图 管理系统的组成及硬件设计 本文设计的智能化管理系统是
[单片机]
基于MAX038的单片机多波调频信号产生器的设计
文章介绍了MAX038的特性和功能,以及由单片机、MAX038和D/A转换器构成的多波形数字调频信号产生器的系统结构、控制方式、软件设计和参数配置。单片机通过D/A转换器对MAX038的控制实现频率和占空比的调控,在 0.1Hz~12MHz 内产生三角波、正弦波和方波,可应用于各种电子测量和控制场合。
在现代电子测量、控制、通信系统等技术领域中,具有频率范围宽、分辨率高、快速转换的多种模式的信号源是非常重要的。本文设计的多波形调频信号产生器是由单片机、MAX038和D/A转换器构成的,它的频率和波形由单片机闭环调控,能较好地面向各种测控应用。 1 MAX038特性功能、内部结构和工作原理
MAX038 是 Maxim
[单片机]
单片机控制GSM模块实现短信收发的软件设计
GSM(Global System for Mobile communication)系统是目前基于时分多址技术的移动通信体制中,比较成熟完善,且应用最广泛的一种系统。目前已建成的覆盖全国的GSM数字蜂窝移动通信网,是我国公众移动通信网的主要方式。基于GSM的短信信息服务,是一种在移动网络上传送简短信息的无线应用,是一种信息在移动网络上存储和转寄的过程。由于公众GSM网络在全球范围内实现了联网和漫游,建议上述系统不需再组建专用通信网络,所以具有实时传输数据功能的短信应用将得到迅速普及。笔者开发设计的基于GSM网络的温度数据采集与无线传输系统正是借助该网络平台,利用短信息业务实现数据的自动双向传递。系统模型图如图1所示。
本
[单片机]
飞思卡尔单片机DZ60---SCI(查询接收)
#include hidef.h /* for EnableInterrupts macro */ #include derivative.h /* include peripheral declarations */ //整个功能:PC-单片机-PC,PC串口发数据-单片机串口接收数据-单片机将接收到的数据发送回给PC #define LED_D1 PTDD_PTDD0 #define LED_D1_DIR PTDDD_PTDDD0 #define LED_ON 0 #define LED_OFF 1 unsigned char SCANF_SEND_STRINGS = HELLO MCU WORLD ;
[单片机]
单片机(51) LED贪吃蛇流动
#include regx51.h void delay(unsigned int i){ while(i--); } void main(){ unsigned char n,i; unsigned char led ={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f}; while(1){ for(n=0;n 7;n++){ P1=(~led )&0x7f; for(i=1;i 9;i++){ delay(30000); P1=(~(led i))&0x7f; } } } }
[单片机]
51单片机之最简系统
电源 这个就不需要太多解释了,没有电源是不可能正常工作的。关键问题在于单片机需要什么样的电源,又应该接在什么那个管脚(引脚)上?见下图: 通常我们给一个芯片的管管脚标序号时,使半圆形缺口朝上,逆时针从1开始,依次编号(不仅仅是单片机,很多的芯片都是这样给管脚标序号的)。对于STC89C51RC系列的5V的单片机,供电范围在5.5V-3.3V;3V的单片机,供电范围在3.8V-2.0V(这些信息都可以在官网的数据手册中查到)。针对于常用的5V单片机,电脑的USB口刚好就是5V的,通过下载电路就能供电了,而3V的单片机,下载器也有对应的电源接口。 如果我们制作自己的作品的时候,考虑到需要用电池供电,我们就不得不自己设计一下我们
[单片机]
I2C 24LC02 C读写例程(PIC单片机)
1 I2C总线特点 I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。I2C总线的另一个优点是,它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。 2 I2C总线工作原理 I2C总线上的数据稳定规则,SCL为高电平时SDA上的数据保持稳定,SCL为低电平时允许SDA变化。如果SCL处于高电平时,SDA上产生下降沿,则认为是起始
[单片机]