系列文章目录
【STM32】HAL库 新建MDK工程
【STM32】HAL库 串口轮询发送
【STM32】HAL库 外部中断
前言
使用EC11旋转编码器计次
一、EC11旋转编码器
当A项下降沿时触发中断,判断B项的电平是低电平,为顺时针
当B项下降沿时触发中断,判断A项的电平是低电平,为逆时针
二、STM32CubeMX设置
三、代码
int16_t Encoder_Count;
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin == GPIO_PIN_0)
{
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1) == GPIO_PIN_RESET)
{
printf("Encoder_Count:%u\r\n",--Encoder_Count);
}
}
if(GPIO_Pin == GPIO_PIN_1)
{
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0) == GPIO_PIN_RESET)
{
printf("Encoder_Count:%u\r\n",++Encoder_Count);
}
}
}