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

建设网站需要电脑配置东莞专业网站推广工具

建设网站需要电脑配置,东莞专业网站推广工具,网站怎么自适应屏幕,卡盟网站怎么做图片解码器模式(Encoder Interface Mode) 是高级定时器的一种功能,用于直接读取正交编码器(如旋转编码器)的输出信号,自动跟踪脉冲变化并计算方向与计数值,无需CPU频繁干预,适用于电机控…

解码器模式(Encoder Interface Mode)

 是高级定时器的一种功能,用于直接读取正交编码器(如旋转编码器)的输出信号,自动跟踪脉冲变化并计算方向与计数值,无需CPU频繁干预,适用于电机控制、位置检测等场景。

1. 配置编码器输入的GPIO引脚,设置为输入模式,并映射到定时器的通道。

2. 配置定时器为编码器模式,选择编码器接口的工作方式(例如,仅在TI1的边沿计数,或者TI1和TI2的边沿都计数)。

3. 设置自动重装载值,确定计数器的范围。

4. 启用定时器,开始计数。

5. 通过读取计数器的值来获取位置信息,或者结合溢出中断来计算速度。

联想解释

想象你有一个旋转编码器(类似自行车码表)

它通过两个信号线(A相和B相)告诉你转了多少圈、往哪边转。
高级定时器的解码器模式就像一个“自动计步器”

  • 自动数步子:每转一步(一个脉冲),定时器自动加减计数。
  • 判断方向:根据A、B相信号的先后顺序,自动判断是正转还是反转。
  • 实时更新:CPU不用一直盯着,定时器自己默默计数,你随时可以问它:“现在走到哪了?”

STM32 HAL库配置 

步骤1:配置编码器输入引脚

// 配置编码器A相(TI1)和B相(TI2)的GPIO为输入模式
GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = GPIO_PIN_8 | GPIO_PIN_9;  // 假设PA8(TI1)、PA9(TI2)
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;        // 复用推挽模式
GPIO_InitStruct.Pull = GPIO_PULLUP;            // 上拉电阻防干扰
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;     // 映射到TIM1
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

步骤2:配置定时器为编码器模式

TIM_HandleTypeDef htim1;
htim1.Instance = TIM1;  // 使用高级定时器TIM1
htim1.Init.Prescaler = 0;           // 不分频(直接计数)
htim1.Init.CounterMode = TIM_COUNTERMODE_UP; // 实际方向由编码器信号决定
htim1.Init.Period = 65535;          // 自动重装载值(最大计数范围)
htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;// 配置编码器接口
TIM_Encoder_InitTypeDef sEncoderConfig;
sEncoderConfig.EncoderMode = TIM_ENCODERMODE_TI12;  // 同时使用TI1和TI2边沿
sEncoderConfig.IC1Polarity = TIM_ICPOLARITY_RISING; // A相上升沿触发
sEncoderConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI; // A相映射到TI1
sEncoderConfig.IC1Prescaler = TIM_ICPSC_DIV1;       // 无分频
sEncoderConfig.IC1Filter = 0x0;                     // 无滤波sEncoderConfig.IC2Polarity = TIM_ICPOLARITY_RISING; // B相上升沿触发
sEncoderConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI; // B相映射到TI2
sEncoderConfig.IC2Prescaler = TIM_ICPSC_DIV1;
sEncoderConfig.IC2Filter = 0x0;HAL_TIM_Encoder_Init(&htim1, &sEncoderConfig);

步骤3:启动编码器接口

HAL_TIM_Encoder_Start(&htim1, TIM_CHANNEL_ALL);  // 开启TIM1的编码器模式

步骤4:读取计数值

int32_t current_count = __HAL_TIM_GET_COUNTER(&htim1); // 获取当前计数值

步骤5(可选):处理溢出

// 开启溢出中断
__HAL_TIM_ENABLE_IT(&htim1, TIM_IT_UPDATE);// 在中断回调函数中处理溢出
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {if (htim->Instance == TIM1) {// 记录溢出次数,扩展计数范围overflow_count++;}
}

关键参数说明

参数作用
EncoderMode编码器模式:TIM_ENCODERMODE_TI1(仅A相)、TIM_ENCODERMODE_TI2(仅B相)、TIM_ENCODERMODE_TI12(双相)
IC1PolarityA相信号触发边沿(上升沿/下降沿)
IC1Filter输入滤波值(0~15),用于去抖动
Period自动重装载值,决定计数范围(如65535对应16位计数器)
http://www.dtcms.com/wzjs/529329.html

相关文章:

  • 17网站一起做网店普宁网站创建流程
  • 湖南营销型网站建设磐石网络省钱如何优化网页
  • 永州公司网站建设外贸推广优化公司
  • 怎么注册公司邮箱上海企业seo
  • 下载建设银行官方网站下载安装优化大师有必要安装吗
  • net网站开发学习软文大全500篇
  • 做二手货车都做什么网站阿里数据
  • 网站做定向的作用seo优化快排
  • 开发建设信息的网站网站推广方案
  • 泰州网站建设与网页制作seo包年优化平台
  • 大学生ppt免费模板网站百度网站排名搜行者seo
  • 大兴专业网站开发公司阿里巴巴友情链接怎么设置
  • 网站百度抓取安卓优化大师app下载
  • 网站建设及推广枣强百度公司总部
  • 网站制作 php本地推广最有效的方法
  • 坂田公司做网站个人网站制作
  • 无锡定制公司网站六年级上册数学优化设计答案
  • web做网站作业网站推广seo教程
  • 做网站服务器的配置百度推广平台登陆
  • 试述网站建设的流程电商运营助理
  • 网站的二次开发是什么意思今天的病毒感染情况
  • 网站后台管理系统设计网站建设与优化
  • 公司建设网站需要什么windows10优化大师
  • 上海商城网站建设巧克力软文范例200字
  • 公司注册公司哪个好长春seo网站优化
  • 小程序开发教程ppt长沙seo培训
  • 广州外贸b2c网站建设站长工具在线免费
  • 网站建设制作费用模板快速建站
  • 世界十大建筑设计公司排名安卓aso关键词优化
  • 网站空间域名多少钱百度收录在线提交