__INTERRUPT __HIGH_CODE void GPIOB_IRQHandler( void ) { if(GPIOB_ReadITFlagBit(GPIO_Pin_4)) { temp = R16_PB_INT_IF; PRINT("GPIO41 %d\r\n", temp); GPIOB_ClearITFlagBit(GPIO_Pin_4); temp = R16_PB_INT_IF; PRINT("GPIO42 %d\r\n", temp); } if(GPIOB_ReadITFlagBit(GPIO_Pin_10)) { temp = R16_PB_INT_IF; PRINT("GPIO101 %d\r\n", temp); GPIOB_ClearITFlagBit(GPIO_Pin_10); temp = R16_PB_INT_IF; PRINT("GPIO102 %d\r\n", temp); } }
现在发现一个问题,明明只写了GPIOB4触发中断,可GPIOB10也能进去。随后我在while里循环打印R16_PB_INT_IF,发现它初始值就是已经是0XFFFF,为什么要这样子处理?不应该是复位值0吗?
热门产品 :
CH339: 7端口多功能USB HUB控制器芯片