在这里判断左转右转的代码为:
判断左转时:
K2下降沿,如果这个时候K3为0,那么就可以判断是左转,所以代码为
//接下来是中断的中断函数
void EXTI0_IRQHandler(void)
{
//检查一下中断标志位
if (EXTI_GetITStatus(EXTI_Line0) == SET) //K2下降沿
{
//判断一下另一个引脚的电平
if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1) == 0) //K3电平为0
{
//左转
}
//清除中断标志位
EXTI_ClearITPendingBit(EXTI_Line0);
}
}
判断右转时:
K3下降沿,如果这个时候K2为0,那么就可以判断是右转,所以代码为
//下面这个也是一样的,只是换了线,如果是9——15就把两个放一起,用一个中断就行
void EXTI1_IRQHandler(void)
{
if (EXTI_GetITStatus(EXTI_Line1) == SET) //K3下降沿
{
if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_0) == 0) //K2电平为0
{
//正转
Encoder_Count ++;
}
EXTI_ClearITPendingBit(EXTI_Line1);
}
}