GPIO_Pin_4)//(宏定义:读取按键0的端口和引脚的电平,并用KEY0表示)#define KEY1 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)//(读取按键1的端口和引脚的电平,并用KEY1表示)#define WK_UP GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)//(读取按键up的端口和引脚的电平,并用WK_UP表示)#define KEY0_PRES ...
STM32F4上的按键开关WK_UP 引脚为PA0 按键按下后,保持为高电平,因此会设置为下拉输入 实验到目前的规律:若器件外部接地,则为上拉,若外部接高电平,则为下拉 读取IO口输入电平调用库函数为: uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) 读取IO口输入电平操作寄存器为: GPIOx_IDR...
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);//使能 PWR 外设时钟 2、设置 WK_UP 引脚作为唤醒源。 代码语言:javascript 复制 PWR_WakeUpPinCmd(ENABLE);//使能唤醒管脚功能 3、设置 SLEEPDEEP 位,设置 PDDS 位,执行 WFI 指令,进入待机模式。 代码语言:javascript 复制 PWR_EnterSTANDBYMode(void); ...
三个按键下拉,低电平有效 一个按键上拉,高电平有效此处先不管WK_UP,也就是其余三个按键在按下的一瞬间均会产生一个下降沿,所以引脚应该配置成下降沿触发的中断 按键led模块 另外找到芯片对应的引脚号,LED分别是PF9、PF10,按键是PE2 led 按键 二话不说,把PF9、PF10配置成GPIO_Output,把PE2配置成GPIO_EXIT2...
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引脚作为唤醒源。调用函数:PWR_WakeUpPinCmd(ENABLE); 进入待机模式。调用函数:void PWR_EnterSTANDBYMode(void),执行设置SLEEPDEEP位,设置PDDS位,执行WFI指令。 #defineWKUP_KD PAin(0)//PA0 检测是否外部WK_UP按键按下 void Sys_Standby(void) ...
根据上两张图可以进行操作相关步骤设置 SLEEPDEEP 位使能电源时钟,设置 WK_UP 引脚作为唤醒源。设置 PDDS 位,执行 WFI 指令,进入待机模式最后编写 WK_UP 中断函数。实现功能如下使用STM32的待机模式了,并且可以通过 WK_UP来唤醒CPU,我 小嘛小二郎呀2021-08-17 09:10:00 ...
// 如果使用WK-UP引脚唤醒那么需要使能 HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1); // 进入待机模式 HAL_PWR_EnterSTANDBYMode(); } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ...
1、引脚编号GPIO连接资源完全独立连接关系说明34PAOWK_UPY1, 按键KEYUP2, 可以做待机唤醒脚(WKUP)35PA1RMIIREFCLKN接LAN8720的REFCLK0脚36PA2USART2_TX/RS485_RXETH_MDION1,RS232串口2(COM2)RX脚(P9设置)2,RS485只乂脚(P9设置)3,LAN8720的MDIO脚37PA3USART2_RX/RS485_TXPWM_DACN1,RS232串口2(COM2...
像WK_UP就是共阳极接法,引脚需要下拉,按钮按下的时候是高电平,松开是低电平, 而KEY0和KEY1就是共阴极解法,引脚需要上拉,按钮按下的时候是低电平,而松开的时候是高电平。 所以我们在做判断的时候会出现有些的按下是低电平有些的是按下高电平不方便我们判断,状态机里的**KEY_DOWN_LEVEL**就是实际的的按下...