RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);//使能 PWR 外设时钟 2、设置 WK_UP 引脚作为唤醒源。 代码语言:javascript 复制 PWR_WakeUpPinCmd(ENABLE);//使能唤醒管脚功能 3、设置 SLEEPDEEP 位,设置 PDDS 位,执行 WFI 指令,进入待机模式。 代码语言:javascript 复制 PWR_EnterSTANDBYMode(void); ...
比如WK UP被按下后,其引脚会一直保持高电平,也就是PAin(0)一直等于1,此时用一个while (PAin(1));来等待松手,做松手检测。 四、按键控制LED 这里做一个小练习,用普中核心板上的按键KEY0和KEY1来控制LED1的亮灭。步骤如下 初始化LED和KEY的GPIO 编写LED控制函数 编写按键检测函数(检测按键) 编写按键服务...
以WK UP按键为例。当WK UP被按下时,其对应的引脚PA0会变为高电平。 此时检测PA0的输入电平,如果确实是低电平,则说明WK UP可能被按下。说可能是因为PA0为低电平不一定是WK UP按下造成,也可能是抖动,所以这里就需要消抖操作。这里的消抖操作比较简单粗暴,直接延时10ms看该引脚是否依旧是低电平。如果延时10ms...
(读取按键up的端口和引脚的电平,并用WK_UP表示) #define KEY0_PRES 1 //宏定义:用KEY0_PRES表示1,目的是增加程序可读性,在key.c程序中代表KEY0 按下 #define KEY1_PRES 2 //KEY1 按下 (解释同上) #define WKUP_PRES 3 //WK_UP 按下(解释同上) void KEY_Init(void);//定义一个按键初始化配置...
当一个外部复位(NRST引脚)、 IWDG复位、 WKUP引脚上的上升沿或RTC闹钟事件的上升沿发生时,微控制器从待机模式退出。从待机唤醒后,除了电源控制/状态寄存器(PWR_CSR),所有寄存器被复位。 从待机模式唤醒后的代码执行等同于复位后的执行(采样启动模式引脚、读取复位向量等)。 电源控制/状态寄存器(PWR_CSR)将会指示内核...
以WK UP按键为例。当WK UP被按下时,其对应的引脚PA0会变为高电平。此时检测PA0的输入电平,如果确实是低电平,则说明WK UP可能被按下。说可能是因为PA0为低电平不一定是WK UP按下造成,也可能是抖动,所以这里就需要消抖操作。这里的消抖操作比较简单粗暴,直接延时10ms看该引脚是否依旧是低电平。如果延时10ms后...
根据上两张图可以进行操作相关步骤设置 SLEEPDEEP 位使能电源时钟,设置 WK_UP 引脚作为唤醒源。设置 PDDS 位,执行 WFI 指令,进入待机模式最后编写 WK_UP 中断函数。实现功能如下使用STM32的待机模式了,并且可以通过 WK_UP来唤醒CPU,我 小嘛小二郎呀2021-08-17 09:10:00 ...
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); ②设置WK_UP引脚作为唤醒源。 设置PWR_CSR的EWUP位,使能WK_UP用于将CPU从待机模式唤醒。 PWR_WakeUpPinCmd(ENABLE); //使能唤醒管脚功能 ③设置SLEEPDEEP位,设置PDDS位,执行WFI指令,进入待机模式。 voidPWR_EnterSTANDBYMode(void);...
一个按键上拉,高电平有效此处先不管WK_UP,也就是其余三个按键在按下的一瞬间均会产生一个下降沿,所以引脚应该配置成下降沿触发的中断 另外找到芯片对应的引脚号,LED分别是PF9、PF10,按键是PE2 二话不说,把PF9、PF10配置成GPIO_Output,把PE2配置成GPIO_EXIT2也就是外部中断模式,这里的2是指该GPIO是挂载在...
2.2 输入上拉模式(Input with Pull-up Mode)在该模式下,GPIO引脚通过一个上拉电阻与VDD相连。当外部电路未连接时,引脚被拉向高电平。这种模式适用于需要稳定输入信号的场合,如按键开关、震动传感器等的信号输入。此模式适用于数字输入信号需要精度要求的场合。 举例:在嵌入式设备中,如果需要使用按键来进行控制,可以...