stm32单片机休眠模式后无法下载程序怎么办

发布者:HeavenlyWonder最新更新时间:2023-10-12 关键字:stm32  单片机  休眠模式  下载程序 手机看文章 扫描二维码
随时随地手机看文章

利用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单片机休眠模式后无法下载程序怎么办

上一篇:基于STM32F107VCT6微控制器的控制系统解决方案
下一篇:基于STM32平台的μC/OS-II上的μC/GUI移植过程解析

推荐阅读最新更新时间:2024-11-12 20:28

51单片机扩展中断的方法
一、采用硬件请求和软件查询的方法: 这种方法是:把各个中断源通过硬件“或非(高有效,如CD4002)”(与,低有效)门引入到单片机外部中断源输入端(INT0或INT1),同时再把外部中断源送到单片机的某个输入输出端口,这样当外部中断时,通过“或非”(与)门引起单片机中断,在中断服务程序中再通过软件查询,进而转相应的中断服务程序。显然,这种方法的中断优先级取决于软件查询的次序。其硬件连接和软件编程如下: Void zhongduan (void) interrupt 0 using 3 //中断函数 { EX0=0;//关中断 If(P0_0=1) { *****}//中断查询 If(P0_1=1) { ****
[单片机]
51<font color='red'>单片机</font>扩展中断的方法
单片机c语言教程第一章 建立你的第一个KeilC51项目
随着单片机技术的不断发展,以单片机C语言为主流的高级语言也不断被更多的单片机爱好者和工程师所喜爱。使用C51肯定要使用到编译器,以便把写好的C程序编译为机器码,这样单片机才能执行编写好的程序。KEIL uVISION2 是众多单片机应用开发软件中优秀的软件之一,它支持众多不一样公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C语言的程序设计,它的界面和常用的微软 VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。本站提供的单片机c语言教程都是基于keilc51的   下面结合8051介绍单片机C语言的优越性:   ·无须懂得单片机的具体硬件,也能够编出符合硬件
[单片机]
<font color='red'>单片机</font>c语言教程第一章 建立你的第一个KeilC51项目
STM32单片机的GPIO模式解析
一、推挽输出:可以输出高、低电平,连接数字器件;推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源决定。 推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度 二、开漏输出:输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,其吸收电流的能力相对强(一般20mA以内)。开漏形式的电路有以下几个特点: 1、利用外部电路的驱
[单片机]
<font color='red'>STM32</font><font color='red'>单片机</font>的GPIO<font color='red'>模式</font>解析
STM32初学笔记4之USART
=========================== 文件分割线 =============================== /** ** 文件名称:BSP_ALIENTEK.H ** 功能描述:ALIENTEK开发板板级支持包声明 ** 硬件平台:STM32F103RBT6 Development Board ** 编译环境:Keil uversion4 IDE ** 版本信息:v0.2 ** 编写作者:唐华明 ** 编写时间:2011.11.26 ** 附加说明:无 ** 修改记录:2011-11-26 将DS0Off() GPIO_SetBits(GPIOD, GPIO_Pin_8)修改为 **
[单片机]
MCS-51单片机复位后,对系统有何要求?
单片机复位后,程序计数器PC的内容为0000H,所以系统必须从0000H单元开始取指令来执行程序。 0000H单元是系统的起始地址,一般在该单元存放一条绝对跳转指令(LJMP) 而用户设计的主程序,则从跳转后的地址开始安放。
[单片机]
分享两个STM32应用中的实战案例
今天在此分享两个STM32应用中的实战案例,权作提醒,以免重蹈覆辙。 案例1: 系统联机工作时,Flash编程偶发性失败 有人使用STM32F4系列芯片做开发,代码里涉及到FLASH编程。他发现FLASH编程过程中时不时地出现编程错误,即提示HAL_FLASH_ERROR_PGP错误。 他的产品系统有用到CAN通信。当他不将芯片做系统联机工作时不会发生该错误,只有在做整体联机测试时才可能发生编程异常。 起初,客户使用4字节编程模式,平常单独就flash编程功能测试也正常,整体联机运行时才可能出问题。后来,无意中尝试将FLASH单次编程宽度调整为1个字节后则异常消失。 那是为什么呢? 其实,在做FLASH编程时,选择
[单片机]
分享两个<font color='red'>STM32</font>应用中的实战案例
stm32 mmc卡写文件然后读出来 串口输出
硬件环境:神州一号板 软件环境:MDK 1、sd卡硬件初始化 PA5---------CLK PA6---------MISO PA7---------MOSI PB7---------CS void TurnToSD(void) { SPI_InitTypeDef SPI_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_A
[单片机]
<font color='red'>stm32</font> mmc卡写文件然后读出来 串口输出
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved