利用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一个空程序即可,不要再烧一个休眠的程序了,之后就可以正常烧程序了。
总结:由于板子设计等原因,使用的是第三个方法,前两个方法也都是可用的。
锻件表面氧化皮的“清洁工” 氧化皮处理设备
购买UPS电源应考虑那些因素
怎样用AR全方位观看世界杯?
详解移动通信领域里的组POOL
LTC3331 无线电池充电器
stm32单片机休眠模式后无法下载程序怎么办
2018年Q1基带芯片市场前三 高通独占榜首三星LSI超过联发科
归母净利润环比上涨48.73%!歌尔股份前三季度实现营收739.48亿元
你所不知道的稳压二极管
什么是RoHS与WEEE指令?
AIOT赋能智能安防 AI+安防迅速崛起
新一期Wi-Fi联盟The Signal播客-Matter和人工智能对物联网的影响
基于CD4069的市电漏电报警器电路
联动科技:在马来西亚等市场已建立推广及服务网点
顺丰三防手机实测:午夜数据自动清零
自主移动机器人加入芯片制造,高端芯片量产将实现?
美国多个部门启动利用深度学习技术推动抗癌研究项目
对单片机选择的17个关键点
看似平淡无奇的硬件却实现了AI零距离
CASAIM与中航工业达成自动化尺寸测量技术合作,提供尺寸测量系统及无损检测技术