在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1.按键初始化 按键K1——PD7 按键K2——PF4 按键K3——PA3 按键K4——PA2 // // key1 init // SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);已经在LED init写过了,不然也是要写的 也就是说,按键初始化只需要(外部设备使能和)设置管脚类型为输入两个步骤。 2.中断使能 三个步骤:设置端口中断类型,使能端口中断,为端口注册一个中断处理句柄 // // interrupt enable--key1 // GPIOIntTypeSet(GPIO_PORTD_BASE,GPIO_PIN_7,GPIO_FALLING_EDGE); //设置PD7中断类型为下降沿触发 GPIOIntEnable(GPIO_PORTD_BASE,GPIO_PIN_7); //使能PF4中断 GPIOIntRegister(GPIO_PORTD_BASE, Key1IntHandler); //为PF4注册一个中断处理句柄 void Key1IntHandler() { GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_6,0<<6);//红灯亮 GPIOIntClear(GPIO_PORTD_BASE,GPIO_INT_PIN_7);//清除key1 } 特别注意的是,中断处理句柄中最后要清除按键状态,表示这个中断已经处理完毕 void Key34IntHandler() { uint32_t IntStatus_raw; IntStatus_raw = GPIOIntStatus( GPIO_PORTA_BASE, 0); //读GPIORIS寄存器 if(IntStatus_raw & GPIO_INT_PIN_3) // PA3引脚有中断事件 { GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,0<<0);//蓝灯亮 GPIOIntClear(GPIO_PORTA_BASE,GPIO_INT_PIN_3);//清除key3 } if(IntStatus_raw & GPIO_INT_PIN_2) // PA2引脚有中断事件 { GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_6,1<<6);//灭灯 GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,1<<4);//灭灯 GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,1<<0);//灭灯 GPIOIntClear(GPIO_PORTA_BASE,GPIO_INT_PIN_2);//清除key4 } } 一个模块需要共用一个中断入口,所以按键3和4需要合在一起写 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论