以WK UP按键为例。当WK UP被按下时,其对应的引脚PA0会变为高电平。此时检测PA0的输入电平,如果确实是低电平,则说明WK UP可能被按下。说可能是因为PA0为低电平不一定是WK UP按下造成,也可能是抖动,所以这里就需要消抖操作。这里的消抖操作比较简单粗暴,直接延时10ms看该引脚是否依旧是低电平。如果延时10ms后...
必须等WK_UP松开再进入待机)RCC_AHB1PeriphResetCmd(0X04FF,ENABLE);//复位所有IO口RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);//使能PWR时钟PWR_BackupAccessCmd(ENABLE);//后备区域访问使能//这里我们就直接关闭
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU); // 如果使用WK-UP引脚唤醒那么需要使能 HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1); // 进入STOP模式 HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); } void sys_enter_standby_mode(void) { // 使能PWR时钟 __HAL_RCC_PWR_CLK_ENABLE()...
四、中断程序配置 这里以配置PA0(按键WK UP)的外部中断为例,展示一下库函数开发时,外部中断的配置流程。关于其他中断的配置,后续使用其他外设时会单独介绍。 想要实现的效果是,利用外部中断实现按下WK UP,LED1点亮。 4.1 设置中断分组并使能中断 这里使用外部中断,需要开启AFIO时钟,设置IO与外部中断线的映射关系。
进入待机模式的方法,以及设置WK_UP引脚用于把STM32从待机模式唤醒的方法 一般步骤如下: 1、设置SLEEPDEEP位 SCB_SCR的第二位 2、使能电源时钟,设置WK_UP引脚作为唤醒源 因为要配置电源控制寄存器,所以必须先使能电源时钟。然后再设置PWR_CSR的EWUP位,使能WK_UP用于将CPU从待机模式唤醒。
使用STM32CubeMX软件配置STM32F407开发板USART1与PC进行异步通信(阻塞传输方式、中断传输方式),具体为 使用WK_UP按键触发串口输出,每按下一次WK_UP按键就以中断方式发送一次数据,并在串口传输完成中断回调函数中输出提示信息和翻转RED_LED灯的状态,同时使用串口中断接收回调函数完成对用户发来的命令解析,发送命令“#1...
用到的板子:STM32F103开发板,一共有三个按键:WK_UP、KEY0和 KEY1。 目标:编写通过这三个按键来控制LED灯和蜂鸣器,WK_UP控制蜂鸣器,按下响,在按一次停。KEY1 控制 LED1, 按一次亮, 再按一次灭;KEY0 则同时控制 LED0 和LED1,按下一次,他们的状态就翻转一次。
// 配置结构体 WK UP GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; // 输入下拉 GPIO_Init(GPIOA, &GPIO_InitStructure); // 配置结构体 KEY0,KEY1 ...
串口输出完“进入待机模式”后,串口不再输出。当按下WK UP时,重新开始倒计时,进入待机模式。 值得注意的是,进入待机模式被唤醒后,程序是重新开始运行的。对于一些只需要第一次开机才显示的页面或者一些第一次开机校准参数的程序,可以通过第一次开机向Flash固定地址写入数据,下次复位读取对应地址的数据,来判断是否是第...
根据上两张图可以进行操作相关步骤设置 SLEEPDEEP 位使能电源时钟,设置 WK_UP 引脚作为唤醒源。设置 PDDS 位,执行 WFI 指令,进入待机模式最后编写 WK_UP 中断函数。实现功能如下使用STM32的待机模式了,并且可以通过 WK_UP来唤醒CPU,我 小嘛小二郎呀2021-08-17 09:10:00 ...