当前位置: 首页 > news >正文

TIM——编码器测速

Encoder Interface 编码器接口
编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度
每个高级定时器和通用定时器都拥有1个编码器接口
两个输入引脚借用了输入捕获的通道1和通道2

void Encoder_Init(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);GPIO_InitTypeDef GPIO_InitStruture;GPIO_InitStruture.GPIO_Mode = GPIO_Mode_IPU;GPIO_InitStruture.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;GPIO_InitStruture.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStruture);TIM_ICInitTypeDef  TIM_ICInitStructure;TIM_ICStructInit(&TIM_ICInitStructure);TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;TIM_ICInitStructure.TIM_ICFilter = 0xF;TIM_ICInit(TIM3, &TIM_ICInitStructure);TIM_ICInitStructure.TIM_Channel = TIM_Channel_2;TIM_ICInitStructure.TIM_ICFilter = 0xF;TIM_ICInit(TIM3, &TIM_ICInitStructure);TIM_TimeBaseInitTypeDef  TIM_TimeBaseInitStructure;TIM_TimeBaseStructInit(&TIM_TimeBaseInitStructure);TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
//	TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;TIM_TimeBaseInitStructure.TIM_Prescaler = 1 - 1;TIM_TimeBaseInitStructure.TIM_Period = 65536 - 1;TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;
//	TIM_TimeBaseInit(TIM3, &TIM_TimeBaseInitStructure);TIM_EncoderInterfaceConfig(TIM3, TIM_EncoderMode_TI12, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);TIM_Cmd(TIM3, ENABLE);
}int16_t Encoder_Get(void)
{int16_t temp = TIM_GetCounter(TIM3);TIM_SetCounter(TIM3, 0);return temp;
}

 用到了一点输入捕获的部分

	TIM_ICInitTypeDef  TIM_ICInitStructure;TIM_ICStructInit(&TIM_ICInitStructure);TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;TIM_ICInitStructure.TIM_ICFilter = 0xF;TIM_ICInit(TIM3, &TIM_ICInitStructure);TIM_ICInitStructure.TIM_Channel = TIM_Channel_2;TIM_ICInitStructure.TIM_ICFilter = 0xF;TIM_ICInit(TIM3, &TIM_ICInitStructure);

http://www.lryc.cn/news/515344.html

相关文章:

  • 抢先体验:人大金仓数据库管理系统KingbaseES V9 最新版本 CentOS 7.9 部署体验
  • 供应链系统设计-供应链中台系统设计(七)- 商品中心设计篇
  • Power BI如何连接Azure Databricks数据源?
  • 【HarmonyOS】鸿蒙应用如何进行页面横竖屏切换以及注意事项,自动切换横竖屏,监听横竖屏
  • 编译 C++ 程序:分离与保留调试信息以支持 GDB 对 Core 文件的调试
  • 009:传统计算机视觉之边缘检测
  • JAVA创建绘图板JAVA构建主窗口鼠标拖动来绘制线条
  • 机器人对物体重定向操作的发展简述
  • 自动驾驶三维重建
  • 30分钟学会css
  • vue路由模式面试题
  • Python 开发框架搭建简单博客系统:代码实践与应用
  • 如何在 VSCode 中配置 C++ 开发环境:详细教程
  • 三甲医院等级评审八维数据分析应用(一)--组织、制度、管理可视化篇
  • 2024 年度总结|勇敢去探索~
  • 2024年, Milvus 社区的那些事
  • vue代理问题
  • Git快速入门(三)·远程仓库GitHub以及Gitee的使用
  • [开源]C++代码分享
  • CSS3——3. 书写格式二
  • PHP语言的计算机基础
  • 第 23 章 JSON
  • Java 正则表达式入门与应用(详细版)
  • 洛谷:P1540 [NOIP2010 提高组] 机器翻译
  • 基于AT89C51单片机的可暂停八路抢答器设计
  • 面试题解,Java中的“对象”剖析
  • 行为模式3.迭代器模式
  • 第8章 DMA控制器
  • 后端java开发路由接口并部署服务器(四)
  • 检索增强生成 和思维链 结合: 如何创建检索增强思维链 (RAT)?