博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
STM32的停机模式与唤醒
阅读量:6912 次
发布时间:2019-06-27

本文共 1690 字,大约阅读时间需要 5 分钟。

主函数内容:

HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_DMA_Init();
MX_ADC_Init();
MX_LPUART1_UART_Init();
MX_USART1_UART_Init();
MX_RTC_Init();
WorkFinished=0;//工作没有完成
while(1)
{
LED1_ON; LED2_ON; LED3_ON;HAL_Delay (500);
printf ("Before Stop \r\n");
if(WorkFinished){
HAL_PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);//进入停止模式
}
LED1_OFF; LED2_OFF; LED3_OFF;
printf ("After Stop \r\n");
}

//用于停机模式的声明

#define PWR_Regulator_LowPower ((uint32_t)0x00000001)
#define PWR_STOPEntry_WFI ((uint8_t)0x01)

//系统的停机函数

void HAL_PWR_EnterSTOPMode(uint32_t Regulator, uint8_t STOPEntry)
{
uint32_t tmpreg = 0U;
/ Check the parameters /
assert_param(IS_PWR_REGULATOR(Regulator));
assert_param(IS_PWR_STOP_ENTRY(STOPEntry));
/ Select the regulator state in Stop mode ---------------------------------/
tmpreg = PWR->CR;
/ Clear PDDS and LPDS bits /
CLEAR_BIT(tmpreg, (PWR_CR_PDDS | PWR_CR_LPSDSR));
/ Set LPSDSR bit according to PWR_Regulator value /
SET_BIT(tmpreg, Regulator);
/ Store the new value /
PWR->CR = tmpreg;
/ Set SLEEPDEEP bit of Cortex System Control Register /
SET_BIT(SCB->SCR, SCB_SCR_SLEEPDEEP_Msk);
/ Select Stop mode entry --------------------------------------------------/
if(STOPEntry == PWR_STOPENTRY_WFI)
{
/ Request Wait For Interrupt /
WFI();
}
else
{
/ Request Wait For Event /
SEV();
WFE();
WFE();
}
/ Reset SLEEPDEEP bit of Cortex System Control Register /
CLEAR_BIT(SCB->SCR, SCB_SCR_SLEEPDEEP_Msk);
}

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)

{
WorkFinished=~WorkFinished;
SystemClock_Config();
printf ("Callback \r\n"); //外设中断 打印
}

程序正常启动后三个灯闪烁(PB12|PB13|PB14),按键后进入停机模式,再按键程序继续执行,再按键停机。

停机模式下耗电:148uA。

转载于:https://blog.51cto.com/dawn0919/2406270

你可能感兴趣的文章
linux 下的GPT分区
查看>>
线程同步
查看>>
Nginx 配置SSL证书
查看>>
每日总结复习
查看>>
iPhone 开发过程中的一些小技术的总结
查看>>
android 资料
查看>>
ThreadLocal 那点事儿
查看>>
Spark源码分析调试环境搭建
查看>>
手把手教你搭建LyncServer2013之命令行持久聊天室和聊天室BUG(十五)
查看>>
全栈工程师就是一棵歪脖子树
查看>>
计算机基础
查看>>
我的友情链接
查看>>
MySQL学习笔记(14)之事务
查看>>
基于Http原理实现Android的图片上传和表单提交
查看>>
解读大数据世界中MapReduce的前世今生
查看>>
【转】TCP为什么是个可靠的协议
查看>>
Word组件Spire.Doc6.0.52 发布| 修复转PDF文本重叠的问题
查看>>
我的友情链接
查看>>
程序员是吃青春饭的?
查看>>
错误:docker-ce conflicts with 2:docker-1.13.1-74.git
查看>>