STM32上升和下降按键中断检测
问题描述:
我有按钮中断:STM32上升和下降按键中断检测
void EXTI0_IRQHandler(void)
{
if (EXTI_GetITStatus(EXTI_Line0) != RESET){
if (/* BUTTON IS RELEASED */) {
/* do something */
}
if (/* BUTTON IS PRESSED */) {
/* do something else */
}
EXTI_ClearITPendingBit(EXTI_Line0);
}
}
是否有可能来检查呢?
答
是的,这是可能的。您必须将EXTI
触发方法设置为EXTI_Trigger_Rising_Falling
。所以STM32在上升和下降沿时输入ISR
。在ISR
中,您可以控制GPIO引脚。如果GPIOPın置1,则必须是上升沿,否则它必须处于下降沿。
void EXTI0_IRQHandler(void)
{
if (EXTI_GetITStatus(EXTI_Line0) != RESET){
if (PIN==1) {//Rising so pressed
/* do something */
}
if (PIN==0) {Falling so released
/* do something else */
}
EXTI_ClearITPendingBit(EXTI_Line0);
}
}
注意:上面的行为正确与连接到按钮的下拉。随着上涨,上涨和下跌将被倒置。
你是什么意思“检查这个”?此外,您应该遵循STM32 GPIO/EXTI示例寻求帮助,并填写您使用的确切代码。如果可以的话,请同时指定您的平台(处理器,评估板,您放置/焊接的任何连接/连接等)。 – bunkerdive 2014-09-19 20:31:37