STM32单片机 定时器 编码器接口
编码器接口测速用于电机控制Encoder Interface 编码器接口编码器接口可接收增量正交编码器的信号根据编码器旋转产生的正交信号脉冲自动控制CNT自增或自减从而指示编码器的位置、旋转方向和旋转速度每个高级定时器和通用定时器都拥有1个编码器接口基本定时器没有编码器接口编码器的两个输入引脚借用了输入捕获的通道1和通道2CH1、CH2CH3和CH4不能接编码器通用定时器编码器结构框图编码器接口基本结构编码器接口根据编码器的旋转方向控制CNT的计数方向编码器正转CNT自增编码器反转CNT自减ARR一般设置ARR为65535最大量程利用补码的特性可以得到负数将6553516位无符号数转换为16位的有符号数65535 -165534 -2 等等正交编码器用于测量位置或带有方向的速度值有两个信号输出引脚A相、B相正转A相提前B相90°反转A相滞后B相90°CNT计数方向与编码器信号的关系仅在TI1计数接收A相信号我们忽略TI2FP2信号相当于B相信号这样精度低了点编码器模式下的计数器操作实例TI1反相即TI1信号通过极性选择时选择的参数是下降沿高低电平反转了。TI1在经过极性选择时可以选择是上升沿有效还是下降沿有效而编码器接口上、下升沿始终有效都需要计次那么在编码器模式下极性选择就不再是边沿的极性选择而是高低电平的极性选择。如果选择上升沿的参数那么信号直通过来高低电平极性不反转。如果选择下降沿的参数那么信号通过非门过来高低电平极性反转。编码器接口测速 代码书写思路1 RCC开启时钟开启GPIO和定时器的时钟GPIO模式可以选择上拉、下拉、浮空如何选择上拉、下拉看接在该引脚的外部模块输出的默认电平如果外部模块空闲默认输出高电平就选择上拉输入默认输入高电平如果外部模块默认输入低电平那就选择下拉输入默认输入低电平和外部模块保持一致防止电平打架。默认高电平是习惯状态。如何判断GPIO模式是否需要配置为浮空输入不确定外部模块输出的默认状态或者外部信号输出功率非常小就尽量选择浮空输入浮空输入没有上拉电阻和下拉电阻影响外部信号浮空输入缺点引脚悬空没有默认电平输入受噪声干扰来回不断跳变2 配置GPIO将要用的接口配置为输入模式不需要定时器内部时钟配置编码器接口会托管时钟编码器接口就是一个带方向控制的外部时钟。3 配置时基单元。计数器模式参数没有用因为计数方向也是被编码器接口托管的。预分频器一般选择不分频。自动重装一般给最大65535-1只需要CNT执行计数就行4 配置输入捕获单元只需要配置滤波器和极性后两个参数没用可以删掉结构体配置不完整为防止结构体中出现不确定值可能造成的问题最好用StructInit给结构体赋初始值加StructInit也是提醒我们结构体没有配置完整。结构体中极性设置为上升沿不是代表上升沿有效因为编码器接口上升沿、下降沿始终有效这里设置的上升沿表示高低电平极性不反转。这里的极性配置会和后面TIM_EncoderInterfaceConfig函数重复配置极性可以删掉。//初始化结构体给结构体赋初始值说明结构体没有完整赋值参数为结构体地址 TIM_ICStructInit(TIM_ICInitStructure);5 配置编码器接口模式/** 定时器编码器接口配置 参数1选择定时器 参数2选择编码器模式 TIM_EncoderMode_TI1 仅在TI1计数 TIM_EncoderMode_TI2 仅在TI2计数 TIM_EncoderMode_TI12 TI1和TI2都计数 参数3、4分别选择CH1和CH2的电平极性 **/ void TIM_EncoderInterfaceConfig(TIM_TypeDef* TIMx, uint16_t TIM_EncoderMode,uint16_t TIM_IC1Polarity, uint16_t TIM_IC2Polarity);参数2对应的3个模式6 最后调用TIM_Cmd启动定时器CNT会随编码器位置自增自减如果想要测量编码器位置直接获取CNT值即可。如果想测量编码器的速度和方向需要每隔一段固定的闸门时间取出CNT再将CNT清零。

相关新闻

PWMI模式测频率占空比

PWMI模式测频率占空比

开启时钟GPIO时基单元输入捕获初始化部分配置两个IC通道同时捕获同一个引脚的模式//快捷将电路配置成PWMI标准的标准结构,只支持通道1、2不支持3、4 //只需要传入一个通道的函数,此函数同时会把另一个通道配置为相反的配置,实现PWMI模式 TIM_…

2026/10/19 6:46:58 阅读更多 →
biliTickerBuy完整入门:4步跑通这款开源B站会员购票工具

biliTickerBuy完整入门:4步跑通这款开源B站会员购票工具

biliTickerBuy完整入门:4步跑通这款开源B站会员购票工具 【免费下载链接】biliTickerBuy b站会员购购票辅助工具 项目地址: https://gitcode.com/GitHub_Trending/bi/biliTickerBuy 刷新B站会员购商品页的瞬间,「立即购买」变成「已售罄」&#x…

2026/10/19 6:46:58 阅读更多 →
【STK】手把手教你利用STK进行仿真-文章合集(通过这个可以快速索引到想要的链接)

【STK】手把手教你利用STK进行仿真-文章合集(通过这个可以快速索引到想要的链接)

很抱歉中间因为个人的生活和学业问题中断了一段时间的更新。但是从接下来就坚持更新,为大家带来更多的内容。 STK 专栏文章合集:按目标选择学习路径 本专栏持续整理 STK 的软件基础、覆盖分析、雷达、光电红外、关联分析、导弹与反导等内容,并配套实际场景和分析结果。 你…

2026/10/19 6:46:58 阅读更多 →

最新新闻

DVWA搭建与漏洞原理实战:Web安全入门黑匣子

DVWA搭建与漏洞原理实战:Web安全入门黑匣子

简介:本资源是面向Web安全初学者与渗透测试入门者的DVWA(Damn Vulnerable Web Application)本地部署实践包,专为在合法可控环境中动手演练SQL注入、XSS、CSRF等常见Web漏洞而设计。压缩包共583个文件,以357个PHP脚本为…

2026/10/19 7:28:16 阅读更多 →
OpenCV复现Photoshop全景拼接算法实战

OpenCV复现Photoshop全景拼接算法实战

简介:本资源是一套面向计算机视觉开发者与图像处理学习者的全景图像拼合技术实践包,聚焦OpenCV自动拼接与Photoshop PhotoMerge专利算法的融合应用,适用于课程设计、毕业项目及实际场景中的多视角图像无缝合成需求。压缩包共90个文件&#xf…

2026/10/19 7:28:16 阅读更多 →
.NET Core跨平台SAP RFC调用库:Linux容器直连ECC实战

.NET Core跨平台SAP RFC调用库:Linux容器直连ECC实战

简介:本资源是面向.NET Core开发者的一站式SAP RFC接口调用开发套件,专为在Windows与Linux平台实现与SAP系统安全、高效通信而设计,适用于企业级集成项目、ERP对接开发及微服务架构中需调用SAP后端函数的中高级开发场景。压缩包共56个文件&am…

2026/10/19 7:28:16 阅读更多 →
TEM图像去噪实战:NLnet非局部注意力网络训练与调参指南

TEM图像去噪实战:NLnet非局部注意力网络训练与调参指南

简介:面向深度学习与信号/图像去噪方向的研究者,这份压缩包提供了论文配套的TEM-NLnet深度去噪网络实现。项目围绕特定数据类型的噪声建模与去除展开,包含数据生成、预处理、噪声学习、模型构建与演示等关键模块,适合用于复现实验…

2026/10/19 7:28:16 阅读更多 →
TEM图像去噪实战:NLnet与Non-Local机制详解

TEM图像去噪实战:NLnet与Non-Local机制详解

简介:这份资源是围绕论文《TEM-NLnet: A Deep Denoising Network for T》整理的演示项目,面向深度学习研究者、论文复现者以及关注信号/图像去噪的开发者。项目聚焦TEM-NLnet深度去噪网络,用Python完整实现了数据生成、预处理、模型构建与训练…

2026/10/19 7:28:16 阅读更多 →
联想SR650(7X06)RAID驱动注入与Linux initramfs配置指南

联想SR650(7X06)RAID驱动注入与Linux initramfs配置指南

简介:本资源为联想ThinkSystem SR650(型号7X06)服务器在Windows Server 2016平台下的全套官方驱动集合,面向企业IT运维工程师、服务器部署人员及虚拟化环境搭建者,解决多硬件组件兼容性差、RAID识别失败、网卡功能受限…

2026/10/19 7:27:16 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →