よくある質問
- M051 ベースシリーズ(95)
- M0518シリーズ(97)
- M0519シリーズ(43)
- M0564 シリーズ(1)
- ミニ 51 ベースシリーズ(90)
- ナノ 100/102 ベースシリーズ(101)
- Nano103 ベースシリーズ(10)
- ナノ 110/112 LCD シリーズ(100)
- ナノ 120 USB シリーズ(111)
- ナノ 130 アドバンストシリーズ(110)
- NUC029 シリーズ(94)
- NUC100/200 アドバンストシリーズ(102)
- NUC120/122/123/220 USB シリーズ(116)
- NUC121/125シリーズ(1)
- NUC126 USB シリーズ(2)
- NUC130/230 CAN シリーズ(103)
- NUC131/NUC1311 CAN シリーズ(98)
- NUC140/240 コネクティビティシリーズ(114)
- M451 ベースシリーズ(118)
- M451M シリーズ(117)
- M452 USB シリーズ(130)
- M4521 USB シリーズ(1)
- M453 CAN シリーズ(128)
- M463 CAN FD/USB HS シリーズ(1)
- M467 Ethernet/Crypto シリーズ(1)
- M471 シリーズ(1)
- M479 Motor Control Series(1)
- M481 Base シリーズ(4)
- M482 USB FS OTG シリーズ(4)
- M483 CAN シリーズ(4)
- M484 USB HS OTG シリーズ(4)
- M485 Crypto シリーズ(4)
- M487 Ethernet シリーズ(4)
- M4TK タッチキーシリーズ(25)
- NUC442/472 シリーズ(130)
- NUC472 Series(1)
- NUC505 シリーズ(138)
常见问答
如何在程序中判断GPIO的中断触发源? 日期:2018-01-16
以NuMicro®家族系列芯片中的M051来举例,P0[7:0]与P1[7:0]共16个脚位共享GP01_INT中断处理函数,因此当中断触发并进入GP01_INT中断处理函数后,需要判断触发来源以进行对应动作。
表一 M051中断脚位映射表
Interrupt Name |
Interrupt Description |
GP01_INT |
External signal interrupt from P0[7:0] / P1[7:0] |
当中断触发后,对应脚位的中断标志位会置位,可依序检查ISRC寄存器中的中断标志位,以判断触发来源,请参考下例:
#define GPIO_GET_INT_FLAG(port, u32PinMask) ((port)->ISRC & (u32PinMask))
void GPIOP0P1_IRQHandler(void)
{
if(GPIO_GET_INT_FLAG(P1, BIT3))
{
//To check if P1.3 interrupt occurred
GPIO_CLR_INT_FLAG(P1, BIT3);
//do something…
}
else if(GPIO_GET_INT_FLAG(P1, BIT4))
{
//To check if P1.4 interrupt occurred
GPIO_CLR_INT_FLAG(P1, BIT4);
//do something…
}
else if(GPIO_GET_INT_FLAG(P1, BIT5))
{
//To check if P1.5 interrupt occurred
GPIO_CLR_INT_FLAG(P1, BIT5);
//do something…
}
}
产品: | 微控制器 ,8 位 8051 微控制器 ,Arm Cortex-M0 微控制器 ,Arm Cortex-M4 微控制器 |
---|---|
应用: | |
功能: | Peripherals,ARM,Interrupt,I/O,External Interrupt,GPIO |