利用TIM编码器接口可以直接驱动EC11编码器,简化个人编码量。
1、设置TIM3为Encoder Mode
?
2、设置TIM3输入GPIO PA6 PA7上拉
?
3、生成代码:
static void MX_TIM3_Init(void)
复制
4、main函数中:
?
复制
设置编码器初值,并启动TIM3
__HAL_TIM_GET_COUNTER(&htim3) = 0; //计数器值置位
HAL_TIM_Encoder_Start(&htim3, TIM_CHANNEL_ALL);
轮询方式读取编码值,显示在LCD上
if(__HAL_TIM_GET_COUNTER(&htim3) != 0) {
char Dir = __HAL_TIM_IS_TIM_COUNTING_DOWN(&htim3); //读取转动方向:0为正、1为负
if(Dir)CaptureNumber--;
else CaptureNumber++;
__HAL_TIM_GET_COUNTER(&htim3) = 0; //计数器值重新置位
sprintf(temp,"%03d",CaptureNumber);
GUI_WriteASCII64x32(35,60,temp,VGA_WHITE,VGA_RED);
}
5、效果
?
---------------------
作者:sujingliang
链接:https://bbs.21ic.com/icview-3394736-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。?