欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
STM32睡眠和停止喚醒源代碼
[打印本頁]
作者:
ligi1979
時間:
2018-8-28 14:42
標題:
STM32睡眠和停止喚醒源代碼
單片機的休眠喚醒和停止喚醒實驗代碼示例
0.png
(36.07 KB, 下載次數: 49)
下載附件
2018-8-28 18:42 上傳
單片機源程序如下:
#include "wkup.h"
#include "led.h"
#include "delay.h"
void Sys_Sleepy(void)
{
SCB->SCR |=0X00;
#if defined ( __CC_ARM )
__force_stores();
#endif
/* Request Wait For Interrupt */
__WFI();
}
//系統進入待機模式
void Sys_Enter_Sys_Sleepy(void)
{
// RCC_APB2PeriphResetCmd(0X01FC,DISABLE); //復位所有IO口
Sys_Sleepy();
}
void EXTI2_IRQHandler(void)
{
EXTI_ClearITPendingBit(EXTI_Line2); // 清除LINE10上的中斷標志位
SCB->SCR |=SCB_SCR_SEVONPEND;
// Sys_Enter_Sys_Sleepy();
if(E2==0)//關機?
{
delay_ms(10000);
if(E2==0)
{
LED0=0;
Sys_Enter_Sys_Sleepy();
}
} else LED1=0;
}
void EXTI3_IRQHandler(void)
{
EXTI_ClearITPendingBit(EXTI_Line3); // 清除LINE10上的中斷標志位
SCB->SCR |=SCB_SCR_SEVONPEND;
LED1=!LED1;
/* if(E3!=0)//關機?
{
Sys_Enter_Sys_Sleepy();
} else LED0=1; */
}
//PA0 WKUP喚醒初始化
void WKUP_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO, ENABLE);//使能GPIOA和復用功能時鐘
GPIO_InitStructure.GPIO_Pin =GPIO_Pin_2; //PE.2
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IPU;//上拉輸入
GPIO_Init(GPIOE, &GPIO_InitStructure); //初始化IO
GPIO_InitStructure.GPIO_Pin =GPIO_Pin_3; //PE.3
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IPU;//上拉輸入
GPIO_Init(GPIOE, &GPIO_InitStructure); //初始化IO
//使用外部中斷方式
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource2); //中斷線2連接GPIOE.2
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource3);
EXTI_InitStructure.EXTI_Line = EXTI_Line3|EXTI_Line2; //設置按鍵所有的外部線路
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //設外外部中斷模式:EXTI線路為中斷請求
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //上升沿觸發
EXTI_InitStructure.EXTI_LineCmd =ENABLE;// DISABLE;
EXTI_Init(&EXTI_InitStructure); // 初始化外部中斷
NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn; //使能按鍵所在的外部中斷通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority =0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中斷通道
NVIC_Init(&NVIC_InitStructure); //根據NVIC_InitStruct中指定的參數初始化外設NVIC寄存器
/*----------------------------------------*/
NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn; //使能按鍵所在的外部中斷通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中斷通道
NVIC_Init(&NVIC_InitStructure); //根據NVIC_InitStruct中指定的參數初始化外設NVIC寄存器
if(E2!=0) Sys_Sleepy(); //不是開機,進入待機模式
}
復制代碼
所有資料51hei提供下載:
睡眠喚醒和停止喚醒實驗.rar
(649.88 KB, 下載次數: 70)
2018-8-28 18:42 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
楓樹566
時間:
2019-5-18 17:51
樓主,我最近也在做停止喚醒實驗。我是把串口的接收口RXD配置為外部中斷方式,通過給串口發送一個字符來喚醒。現在可以用串口發送字符喚醒,我遇到的問題是“我想把喚醒它的字符顯示出來”,結果沒能實現,我想問一下樓主有解決我問題的方法或思路沒有?
作者:
huangzongwu
時間:
2021-4-26 10:48
最近搞低功耗的也遇到很多問題,一開始打算用待機模式,畢竟最省電,而且喚醒之后是復位重啟,不用重新初始化電源等,省事!但是待機之后喚醒經常需要按很多次才會響應,后面放棄了,改用停止模式!
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1