谢谢!
我的程序如下:
if(EXTI_GetITStatus(EXTI_Line8)!=RESET)
{
if(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_8)==0) ////停止
{
GPIO_ResetBits(GPIOA,GPIO_Pin_12); //灯亮
for(i=0;i<EXIT_CONST;i++);
Uart1_SendString(StopData,3);
GPIO_SetBits(GPIOA,GPIO_Pin_12);
//清除中断标志
//EXTI_ClearITPendingBit(EXTI_Line8);
}
//else if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8)==0) //下降
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8)==0) //下降
{
GPIO_ResetBits(GPIOA,GPIO_Pin_12); //灯亮
for(i=0;i<EXIT_CONST;i++);
Uart1_SendString(DownData,3);
GPIO_SetBits(GPIOA,GPIO_Pin_12);
//清除中断标志
}
EXTI_ClearITPendingBit(EXTI_Line8);
}
我试了多次,发现一个问题。
前面的是PB8,写在后面的是PA8。
PA8可以检测到,而PB8则检测不到。
程序里还有一个PA15,PB15。
也是这样判断,也是前面的检测不到,后面的可以检测到。
请大神指教,谢谢!
|