当前位置: 首页 > news >正文

三创大赛网站建设/怎么去做推广

三创大赛网站建设,怎么去做推广,网站建设 慕课,yellow日本高清免费中文STM32 睡眠模式 文章目录 STM32 睡眠模式第1章 低功耗模式简介第2章 睡眠模式简介2.1 进入睡眠模式2.1 退出睡眠模式 第3章 睡眠模式代码示例总结 第1章 低功耗模式简介 在 STM32 的正常工作中,具有四种工作模式:运行、睡眠、停止和待机模式。 在系统或…

STM32 睡眠模式


文章目录

  • STM32 睡眠模式
  • 第1章 低功耗模式简介
  • 第2章 睡眠模式简介
    • 2.1 进入睡眠模式
    • 2.1 退出睡眠模式
  • 第3章 睡眠模式代码示例
  • 总结


第1章 低功耗模式简介

在 STM32 的正常工作中,具有四种工作模式:运行、睡眠、停止和待机模式。

在系统或电源复位以后,微控制器处于运行状态,当CPU不需继续运行时,可以利用多种低功耗模式来节省功耗。这些低功耗模式电源消耗不同、唤醒时间不同和唤醒源不同。
例如等待某个外部事件时,用户需要根据最低电源消耗、最快速启动时间和可用的唤醒源等条件,所以需要根据自身的需要选定一个最佳的低功耗模式。

STM32F1有三种低功耗模式:
1、 睡眠模式(Cortex™-M3内核停止,所有外设包括Cortex-M3核心的外设,如NVIC、系统时钟(SysTick)等仍在运行)。
2、 停止模式(所有的时钟都已停止)。
3、 待机模式(1.8V电源关闭)。

各种低功耗模式的对比如下表:
在这里插入图片描述
说明:
WFI和WFE都是系统指令,WFI是表示中断,WFE表示事件。

第2章 睡眠模式简介

在睡眠模式下,所有的I/O引脚都保持它们在运行模式时的状态。

2.1 进入睡眠模式

进入睡眠模式:
通过执行WFI或WFE指令进入睡眠状态。根据Cortex™ M3系统控制寄存器中的SLEEPONEXIT位的值,有两种选项可用于选择睡眠模式进入机制:
1、SLEEP-NOW:如果SLEEPONEXIT位被清除,当WRI或WFE被执行时,微控制器立即进入睡眠模式。
2、SLEEP-ON-EXIT:如果SLEEPONEXIT位被置位,系统从最低优先级的中断处理程序中退出时,微控制器就立即进入睡眠模式。

两种进入睡眠模式的模式 WFI 和 WFE:
WFI(Wait for interrupt)和 WFE(Wait for event)都是内核指令,会调用对应汇编指令,具体描述可以查看**《CM3 权威指南》**。

进入睡眠模式,内核时钟关闭,内核停止,所有外设包括 Cortex M3 核心的外设,如 NVIC、系统时钟(SysTick)等仍在运行,保留睡眠前的寄存器数据、内存数据等。

2.1 退出睡眠模式

退出睡眠模式:
如果执行WFI指令进入睡眠模式,任意一个被嵌套向量中断控制器响应的外设中断都能将系统从睡眠模式唤醒。
如果执行WFE指令进入睡眠模式,则一旦发生唤醒事件时,微处理器都将从睡眠模式退出。

如何进入和退出睡眠模式,细节参考如下表:
在这里插入图片描述

第3章 睡眠模式代码示例

代码如下:

main.cKEYUP_Init();
while(1)
{if(GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_3) == 0){LED1 = 0;__WFI();/* 进入睡眠模式 */LED1 = 1;}
}
void KEYUP_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;EXTI_InitTypeDef EXTI_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);       /* 使能复用功能时钟 */RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);      /* 使能按键端口时钟 *//* PA0端口配置 */GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_0;                 /* WK_UP引脚 */GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;              /* 下拉输入 */GPIO_Init(GPIOA, &GPIO_InitStructure);                     /* 初始化WK_UP按键端口 *//* PA0 中断线以及中断初始化配置    WK_UP */GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);EXTI_InitStructure.EXTI_Line = EXTI_Line0;               EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;     EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;    EXTI_InitStructure.EXTI_LineCmd = ENABLE;                  /* 使能中断线 */EXTI_Init(&EXTI_InitStructure);                     /* 外部中断0 NVIC 配置 */NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;       NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;        NVIC_Init(&NVIC_InitStructure);                      
}
void EXTI0_IRQHandler(void)
{delay_ms(20);                      /* 延时消抖 */if(EXTI_GetFlagStatus(EXTI_Line0) == SET){printf("退出睡眠模式\r\n");}EXTI_ClearITPendingBit(EXTI_Line0);/* 清除LINE0上的中断标志位 */
}

总结

实验现象:当按键按下后,进入睡眠模式,LED1点亮,PA0所在外部中断触发后退出睡眠模式,LED1熄灭。

睡眠模式相对比较简单些,直接调用一下系统指令__WFI就可以进入睡眠了,退出只需一个任意外部中断即可。

http://www.jmfq.cn/news/5348251.html

相关文章:

  • 网站建设+珠海+java/收录网
  • 荆门网站建设服务/今天重大新闻头条
  • 东莞网站建设做网站/搜索指数的数据来源
  • 电子商务网站建设可用性/seo企业顾问
  • 如何建设手机端网站/东莞营销网站建设直播
  • 百竞网站建设/网址注册
  • 佛山网站建设服务/军事新闻头条最新消息
  • 晋中市住房与城乡建设厅网站/系统优化软件
  • 晋中市科技馆网站建设/自媒体平台注册入口
  • 陕西省高速建设集团网站/新产品怎样推广
  • 网站建设-应酷/汕头seo代理商
  • 腾讯 网站建设/百度人工投诉电话是多少
  • 高青县住房和城乡建设局网站/1688官网入口
  • 网站建设运营计划书/广州seo搜索
  • 美丽乡村建设网站php源码/商城小程序开发哪家好
  • 宿迁市建设局网站怎么投诉/seo网络营销技巧
  • 政府网站建设企划书/适合口碑营销的产品
  • 网站建设开发电销话术/免费合作推广
  • 万维建设网站/品牌营销策划十大要点
  • 网站建设服务合同范本/长春网站推广排名
  • 山东公路建设集团网站/无屏蔽搜索引擎
  • 徐州贾汪区建设局网站/怎么有自己的网站
  • 浅谈博物馆网站建设的意义/我想做网络推广找谁
  • 沧源网站建设/百度搜索引擎怎么做
  • 做文化建设的网站/谷歌搜索入口中文
  • 怎么建设网站容易被百度抓取/百度app登录
  • 网站建设中 翻译/最有效的推广学校的方式
  • 电子商务企业网站建设前期规划方案/网络零售的优势有哪些
  • 盐城建设网站/链接推广平台
  • 福建大舟建设集团有限公司 网站/青岛网站建设制作推广