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

国内禁用的国外网站长沙商城网站开发

国内禁用的国外网站,长沙商城网站开发,私募基金网站怎么做seo,企业商网如何建设解码器模式(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/562348.html

相关文章:

  • dw asp access 网站开发优点企业网站模板 免费下载
  • 网站备案域名备案隆昌移动网站建设
  • 基于wordpress的英文小游戏站wordpress安全登录插件下载
  • 公司增加英文网站要怎么做wordpress 手机端模板下载
  • 成都网站建设优化推河南省网站建设方案书
  • 建站 哪个网站系统好用手机网站菜单网页怎么做
  • 如何建立网站平台的步骤iis7 静态网站
  • 南阳注册公司百度快速优化软件
  • 网站建设的er图安全的网站建设
  • 深圳宝安网站建设公司推荐公司内部网站系统
  • 关于网站建设的建议我想做一个网站 不知道找谁做
  • 网站建设制作设计推广优化环保部网站建设项目验收方案
  • 网站备案重要性外贸网站建设视频教程
  • 南京做网站外包做旅游网站赚钱吗
  • 58同城盐城网站建设中国做网站最好的公司
  • 什么样的网站需要备案wordpress修改绑定域名
  • 百度首页关键词优化网站百度优化
  • 对门户网站建设情况的报告做设计的分析图网站有哪些
  • 网站添加属性wordpress 支付宝接口
  • 聊城房地产网站建设成都建网站的公司
  • 网站规划结构邯郸网站制作公司
  • 织梦网站如何做地区分站没有网站也可以做外贸吗
  • 网站设置搜索关键字有哪些做婚礼平面设计的网站
  • 网站建设都需要哪些材料现在学ui设计就业前景
  • 周年庆网站要怎么做一流的邯郸网站建设
  • 南京网站设计我选柚米科技长沙模板网站长沙网站建设
  • 哪个网站ppt模板免费下载做恒生指数看什么网站
  • 深圳网站建设公司设计公司网站建设注意的问题
  • 南宁网站设计公司排名买网站域名
  • 网站建设捌金手指花总十三北京制作app