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

中小型网站建设价格怎么建立个人网站

中小型网站建设价格,怎么建立个人网站,wordpress获取页面图片,施工企业党建品牌名称解码器模式(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/500171.html

相关文章:

  • 中国建设网建设通官方网站外贸推广营销公司
  • 洛阳网站开发公司百度站内搜索
  • 青岛开发区网站建设多少钱seo排名赚app官网
  • 做调查问卷用的网站或软件关键词列表
  • 上海文明城市建设网站网络营销服务的特点有哪些
  • 电商建设网站seo排名赚app靠谱吗
  • 网站开发多少钱一天是云搜索下载
  • 甘肃网站设计公司优化营商环境个人心得体会
  • 案例学 网页设计与网站建设长沙网站外包公司
  • wordpress多用户插件关键词优化如何做
  • 兼职做诚信网站认证淘宝关键词优化
  • 公立幼儿园网站建设方案hao123上网从这里开始官方
  • 网站设计要先做图么推广网站公司
  • 北京做网站制作公司百度爱采购客服电话
  • 淘宝客网站建设线上培训课程
  • 购物商城网站制作seo网站优化专家
  • 烟台汽车网站建设网站自然优化
  • 个人网站隐藏服务器真实ip网站建设建站在线建站
  • 网站建设 证书免费浏览外国网站的软件
  • 优化网站要怎么做小红书软文案例
  • 医院网站建设的特点seo推广软
  • 做网站效果图是用ps还是ai网站收录大全
  • 锦州网站建设广州网站营销推广
  • 兰州网站优化排名怎样建网站平台
  • 深圳建站公司服务短视频矩阵seo系统源码
  • 在电脑上做苗木网站百度推广关键词质量度
  • 网站服务器哪里的好小红书关键词排名怎么做
  • 九江网站建设九江鄂尔多斯seo
  • 莒县网站建设微信上如何投放广告
  • 交友网网站开发文档私人做网站建设