stm32单片机进入休眠(STOP)模式后无法下载程序等问题的解决
2018-02-01 20:50
1271 查看
利用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任选一个。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/0b99d282cb7820a83b48f6b27e13896d)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/c5d3364c12f982d2a30b7651ead7c01e)
配置好之后load一个空程序即可,不要再烧一个休眠的程序了,之后就可以正常烧程序了。
总结:由于板子设计等原因,使用的是第三个方法,前两个方法也都是可用的。
我遇到的问题是:误入了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进入低功耗模式后无法烧写程序的解决办法
- 关Atmega16单片机进入“编程模式失败”问题的解决办法之一
- STM32 无法使用IAR下载程序问题
- 430单片机仿真器MSP-FETU430IF遇到VCP问题不能下载程序解决办法详解
- 解决app store里出现他人账号下载的程序无法更新问题
- 3.通过进入单用户模式解决linux中的rc.local修改后无法启动的问题
- 快速解决Win 7升级后无法正常进入睡眠模式的问题——386w.com
- STM32 jlinkSWD模式下检测,下载问题解决方法
- 解决STM32调试,无法进入main函数的问题
- 通过进入单用户模式解决linux中的rc.local修改后无法启动的问题
- 解决Eclipse中编辑大文件进入scalability模式无法按Ctrl或者F3跳转的问题。
- 基于MDK编程STM32程序无法使用,硬件仿真在汇编窗口看到停留在“0x0800XXXX BEAB BKPT 0xAB //进入调试模式”
- STM32F10x 学习笔记9(解决JLink 无法下载程序的问题)
- Myeclipse写servlet程序启动tomcat后无法进入debug模式的解决方法
- 解决问题:由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
- 014:针对mdk中STM32程序无法使用printf,产生停留BEAB BKPT 0xAB处问题的解决(转)
- stm32之 GPIO_Remap_SWJ_Disable之后无法使用swd下载 程序解决方法
- pe模式安装win7(32位)的时候出现“安装程序无法定位现有系统分区,也无法创建新的系统分区”提示,网上很多对此问题没有很好的解决办法
- 通过进入单用户模式解决linux中的rc.local修改后无法启动的问题
- STM32F10x 学习笔记之解决JLink 无法下载程序的问题