void KEY_Init(void);//IO初始化 u8 KEY_Scan(u8); //按键扫描函数 #endif key.c文件内容如下: #include "stm32f10x.h" #include "key.h" #include "sys.h" #include "delay.h" //按键初始化函数 void KEY_Init(void) //IO初始化 { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd...
typedefenum{GPIO_PULLUP_DISABLE=0x0,// 失能上拉GPIO_PULLUP_ENABLE=0x1,// 使能上拉}gpio_pullup_t; 成员pull_down_en用来配置下拉,它的可选值如下: typedefenum{GPIO_PULLDOWN_DISABLE=0x0,// 失能下拉GPIO_PULLDOWN_ENABLE=0x1,// 使能下拉}gpio_pulldown_t; 成员intr_type用来配置...
Hardware里有LED.c、LED.h、key.h、key.c四个文件!! 按键模块配置的时GPIO的输入,LED模块配置的时GPIO的输出!! 在这里插入图片描述 //Hardware文件下LED.c驱动模块#include"stm32f10x.h" // Device headervoidLED_Init(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitTypeDefGPIO_Ini...
#define KEY0_PRES 1 //KEY0按下 #define KEY1_PRES 2 //KEY1按下 #define WKUP_PRES 3 //KEY_UP按下(即WK_UP/KEY_UP) void KEY_Init(void);//IO初始化 u8 KEY_Scan(u8); //按键扫描函数 #endifkey.c文件内容如下:#include "stm32f10x.h" ...
# 示例:读取按键状态classGPIO:def__init__(self,pin):self.pin=pindefget_value(self):# 假设寄存器地址为 0x40000030value=*(volatile uint32_t*)0x40000030&(1<<self.pin)returnvalue!=0# 使用示例gpio=GPIO(11)ifgpio.get_value():print("Key is pressed")else:print("Key is released") ...
[ 228.015309] Modules linked in: bc_example(O) rpmsg_proto sha512_generic sha512_arm sha256_generic sha1_generic sha1_arm_neon sha1_arm md5 des_generic cbc rpmsg_rpc xfrm_user xfrm4_tunnel ipcomp xfrm_ipcomp esp4 ah4 af_key xfrm_algo bluetooth ti_prueth pru_rproc ahci_platform lib...
//GPIOA-》ODR|=0X7《《5; //PA5.6.7上拉,应该不起作用,因为此模式 10 SPI1-》CR1&=~(1《《6);//关闭SPI来配置某些位 2018-12-06 15:55:31 AIS3624DQ WHO_AM_I返回0XFF .B4 = 0; //芯片选择低 X = SPI1_Read(0X0F); Delay_ms(10); GPIOA_ODR.B4 = 1; ///芯片选择高 }}#s...
的延时时间,让抖动消失后再进行一次按键状态检测,如果与刚才检测到的状态相同,就可以确认按键已经稳定的动作了 代码语言:javascript 代码运行次数:0 运行 AI代码解释 static voidrt_led1_flash_entry(void *parameter) { for (;;) if(!HAL_GPIO_ReadPin(USR_KEY1_GPIO_Port,USR_KEY1_Pin)) { rt_...
*/ gic->D_ICENABLER[nr >> 5] = (uint32_t)(1UL << (nr & 0x1FUL)); } 1.4.8 主函数调用 调用system_init_irq_table初始化中断跳转表,key_irq_init初始化按键中断的GPIO配置和注册中断处理函数,通过gic_init初始化GIC控制器,最后通过gic_enable_irq使能按键对应GIC中断号使用的中断。 ...
KEY2.press_timerms=PRESS_NONE; WKUP.press_timerms=PRESS_NONE; }//检测任意按键按下时长 if(KEY0.press_timerms >= PRESS_200MS && KEY0.press_timerms < PRESS_5000MS) { KEY0.press_timerms=PRESS_NONE; printf("KEY0 press more than 200ms, less than 5000ms .\r\n"); ...