stm32 HAL库 4096线ABZ编码器
@[TOC]目录
ABZ编码器 4096线
买的是这个

AB相代表计数方向,Z代表过零点

cubemx配置
定时器Encoder

也可以选上DMA

中断

Z相GPIO中断
找一个空闲管脚

打开对应中断

代码
不用DMA
int main(void)
{short Enc_cnt = 0;HAL_TIM_Encoder_Start_IT(&htim4,TIM_CHANNEL_1|TIM_CHANNEL_2); //开启定时器的编码器模式中断while (1){Enc_cnt = (short)__HAL_TIM_GET_COUNTER(&htim4);float angle = 360.0/4.0/4096.0*(float)Enc_cnt;}
}
//GPIO中断,过零点清零
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){if(GPIO_Pin == GPIO_PIN_13){/* KEY */ /* 翻转LED */HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);
// __HAL_TIM_SET_COUNTER(&htim4, 0);if(__HAL_TIM_IS_TIM_COUNTING_DOWN(&htim4)){htim4.Instance->CNT+=16384; //4*4096}else{htim4.Instance->CNT-=16384;}}
}
用DMA
int main(void)
{short Enc_cnt = 0;uint32_t encoderValue[2];HAL_TIM_Base_Start(&htim4);HAL_TIM_Encoder_Start_DMA(&htim4,TIM_CHANNEL_1|TIM_CHANNEL_2,&encoderValue[0],&encoderValue[1],2);while (1){Enc_cnt = (short)__HAL_TIM_GET_COUNTER(&htim4);float angle = 360.0/4.0/4096.0*(float)Enc_cnt;}
}
//GPIO中断,过零点清零
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){if(GPIO_Pin == GPIO_PIN_13){/* KEY */ /* 翻转LED */HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);
// __HAL_TIM_SET_COUNTER(&htim4, 0);if(__HAL_TIM_IS_TIM_COUNTING_DOWN(&htim4)){htim4.Instance->CNT+=16384;}else{htim4.Instance->CNT-=16384;}}
}
效果
过机械零点就+/-360

相关文章:
stm32 HAL库 4096线ABZ编码器
[TOC]目录 ABZ编码器 4096线 买的是这个 AB相代表计数方向,Z代表过零点 cubemx配置 定时器Encoder 也可以选上DMA 中断 Z相GPIO中断 找一个空闲管脚 打开对应中断 代码 不用DMA int main(void) {short Enc_cnt 0;HAL_TIM_Encoder_Start_IT(&ht…...
Java爬虫之Jsoup
1.Jsoup相关概念 Jsoup很多概念和js类似,可参照对比理解 Document :文档对象。每份HTML页面都是一个文档对象,Document 是 jsoup 体系中最顶层的结构。 Element:元素对象。一个 Document 中可以着包含着多个 Element 对象&#…...
如何在 C# 12 中使用主构造函数
C# 12 中最引人注目的新功能之一是对主构造函数的支持。主构造函数的概念并不新鲜。包括 Scala、Kotlin 和 OCaml 在内的多种编程语言都支持直接在声明类的位置集成构造函数参数。 在本文中,我们将仔细研究主构造函数以及如何在 C# 12 中使用它们。若要运行本文中提…...
Zookeeper之Java客户端实战
ZooKeeper应用的开发主要通过Java客户端API去连接和操作ZooKeeper集群。可供选择的Java客户端API有: ZooKeeper官方的Java客户端API。第三方的Java客户端API,比如Curator。 接下来我们将逐一学习一下这两个java客户端是如何操作zookeeper的。 1. ZooKe…...
将文本文件导入Oracle数据库的简便方法:SQL Loader Express
需求 我有一个文本文件dbim.txt,是通过alert log生成的,内容如下: 2020-09-11 2020-09-11 ... 2023-12-03 2023-12-03 2023-12-26我已经在Oracle数据库中建立了目标表: create table dbim(a varchar(16));我想把日志文件导入Or…...
element-ui table-自定义表格某列的表头样式或者功能
自带表格 自定义表格某列的表头样式或者功能 <el-table><el-table-column :prop"date">//自定义表身每行数据<template slot-scope"scope">{{scope.row[scope.column.label] - ? - : scope.row[scope.column.label]}}</template>…...
Android 13.0 SystemUI状态栏居中显示时间和修改时间显示样式
1.概述 在13.0的系统rom定制化开发中,在systemui状态栏系统时间默认显示在左边和通知显示在一起,但是客户想修改显示位置,想显示在中间,所以就要修改SystemUI 的Clock.java 文件这个就是管理显示时间的,居中显示的话就得修改布局文件了 效果图如下: 2.SystemUI状态栏居中显…...
讲解eureca和nacus的区别
Eureca和Nacus都是远程过程调用(RPC)框架,用于实现分布式系统中不同节点之间的通信。它们之间的主要区别如下: 架构设计:Eureca是一个基于JavaScript的RPC框架,它使用了WebSockets作为传输层协议。Eureca C…...
python中parsel模块的css解析
一、爬虫页面分类 1.想要爬取的内容全部在标签中,可以使用xpath去进行解析如下图 2.想要爬取的内容呈现json的数据特征,用.json()转换为字典格式 3.页面不规则,标签中包含大括号,如下面想要获取键值内容怎么做,先用re正…...
Oracle OCP怎么样线上考试呢
大家好!今天咱们就来聊聊Oracle OCP这个让人又爱又恨的认证。为啥说又爱又恨呢?因为它既是IT界的“金字招牌”,又是一块硬骨头,不是那么容易啃下来的。好了,废话不多说,我们直奔主题,来看看关于…...
如何让自己的写的程序在阿里云一直运行
购买了阿里云服务器后,每次要用自己写在阿里云的服务器程序都要连接到云端 然后./运行该程序,而且每次一断开终端,该服务器就会自动停止,这样使用相当麻烦。那怎样才能让我们的服务器一直在云端后台运行,即便退出终端…...
【计算机图形学】NAP: Neural 3D Articulation Prior
文章目录 1. 这篇论文做了什么事,有什么贡献?2. Related Work铰接物体建模3D中的Diffusion model扩散模型 3. Pipeline铰接树参数化基于Diffusion的铰接树生成去噪网络 4. 实验评价铰接物体生成——以往做法与本文提出的新指标NAP捕捉到的铰接物体分布质…...
知识付费平台搭建?找明理信息科技,专业且高效
明理信息科技知识付费saas租户平台 在当今数字化时代,知识付费已经成为一种趋势,越来越多的人愿意为有价值的知识付费。然而,公共知识付费平台虽然内容丰富,但难以满足个人或企业个性化的需求和品牌打造。同时,开发和…...
CentOS7部署Kafka
CentOS7部署Kafka 一、部署1、前置条件2、下载与解压3、修改配置4、启动kafka二、使用详解1、创建一个主题2、展示所有主题3、启动消费端接收消息4、生产端发送消息三、代码集成pom.xmlapplication.propertiesKafkaConfiguration.javaKafkaConsumer.javaKafkaProducer.javaVehi…...
JS的防抖和节流
目录 防抖 搜索框带来的问题 实现的思路 案例 封装防抖函数 节流 滚动条加载带来的问题 实现的思路 案例 封装节流函数 防抖 搜索框带来的问题 需求:根据输入框内容来请求数据 <!DOCTYPE html> <html lang"en"> <head><…...
互联网加竞赛 基于人工智能的图像分类算法研究与实现 - 深度学习卷积神经网络图像分类
文章目录 0 简介1 常用的分类网络介绍1.1 CNN1.2 VGG1.3 GoogleNet 2 图像分类部分代码实现2.1 环境依赖2.2 需要导入的包2.3 参数设置(路径,图像尺寸,数据集分割比例)2.4 从preprocessedFolder读取图片并返回numpy格式(便于在神经网络中训练)2.5 数据预…...
pip安装报错SSL
confirming the ssl certificate: HTTPSConnectionPool(hostmirrors.cloud.tencent.com, port443) 错误代码如上 偶然搜索:ubuntu pip出错 confirming the ssl certificate: HTTPSConnectionPool(host‘mirrors.cloud.tencent.com’, port443) 看到这个回答 【日常踩…...
手机视频监控客户端APP如何实现跨安卓、苹果和windows平台,并满足不同人的使用习惯
目 录 一、手机视频监控客户端的应用和发展 二、手机视频监控客户端存在的问题 三、HTML5视频监控客户端在手机上实现的方案 (一)HTML5及其优点 (二)HTML5在手机上实现视频应用功能的优势 四、手机HTML5…...
从写下第1个脚本到年薪40W,我的自动化测试心路历程
我希望我的故事能够激励现在的软件测试人,尤其是还坚持在做“点点点”的测试人。 你可能会有疑问:“我也能做到这一点的可能性有多大?”因此,我会尽量把自己做决定和思考的过程讲得更具体一些,并尽量体现更多细节。 …...
Vue CLI组件通信
目录 一、组件通信简介1.什么是组件通信?2.组件之间如何通信3.组件关系分类4.通信解决方案5.父子通信流程6.父向子通信代码示例7.子向父通信代码示例8.总结 二、props1.Props 定义2.Props 作用3.特点4.代码演示 三、props校验1.思考2.作用3.语法4.代码演示 四、prop…...
GitLab实战:如何用rebase -i优雅合并多个commit(附常见错误排查)
Git提交历史优化:交互式rebase高阶操作指南 1. 为什么需要整理Git提交历史 在团队协作开发中,我们经常会遇到提交历史杂乱无章的情况。想象一下这样的场景:你完成了一个新功能的开发,但在这个过程中产生了十几个零散的提交记录&am…...
2026年6月PMP考试:70天冲刺,这5个“备考误区”正在偷偷浪费你的时间
大家好,我是老陈。 今天这篇,我不想再写什么“每天学几小时、刷多少题”了。 前面写了好几篇,该说的都说了。今天咱们换个角度,聊聊那些看似正确、实则坑人的备考误区。 为什么聊这个?因为我发现一个规律࿱…...
AI视频增强解决方案:Video2X开源工具实战指南
AI视频增强解决方案:Video2X开源工具实战指南 【免费下载链接】video2x A lossless video/GIF/image upscaler achieved with waifu2x, Anime4K, SRMD and RealSR. Started in Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/video…...
手把手教你实现UE4与Vue页面的无缝通信(附完整代码示例)
UE4与Vue深度整合:现代前端框架与游戏引擎的通信实践 在数字内容开发领域,将现代Web技术与游戏引擎结合已成为提升用户体验的重要趋势。本文将深入探讨如何实现Unreal Engine 4与Vue.js框架的高效通信,为开发者提供一套完整的解决方案。 1.…...
字节MidScene 手机自动化
1 框架介绍 Midscene 是一个可通过自然语言描述目标和步骤,自动规划并操作用户界面、执行自动化的框架。 框架地址:https://midscenejs.com/zh/支持端:Android、iOS、鸿蒙、桌面、浏览器核心特性 自然语言控制跨平台自动化同时支持智能执行…...
智能家居集成终极指南:海尔设备互联互通的完整解决方案
智能家居集成终极指南:海尔设备互联互通的完整解决方案 【免费下载链接】haier 项目地址: https://gitcode.com/gh_mirrors/ha/haier 在智能家居快速发展的今天,设备互联互通已成为提升用户体验的关键。本文将详细介绍如何通过开源项目实现海尔智…...
S32K144开发环境避坑指南:SDK选择与Segger JLink配置详解
S32K144开发环境避坑指南:SDK选择与Segger JLink配置详解 第一次接触NXP S32K144微控制器时,最令人头疼的莫过于开发环境的搭建。记得去年接手一个汽车电子项目,团队花了整整三天时间才让调试器正常工作——不是因为硬件问题,而是…...
别再当黑匣子用了!手把手教你用FastMCP的tool()、resource()和prompt()装饰器,从源码理解到实战避坑
FastMCP装饰器深度解析:从tool()到prompt()的实战进阶指南 1. 为什么需要理解装饰器内部机制? 在Python开发领域,装饰器(Decorator)是一种强大的元编程工具,而FastMCP框架中的tool()、resource()和prompt()装饰器更是将这一理念发…...
Steam Achievement Manager完全指南:开源工具解决Steam游戏成就高效管理难题
Steam Achievement Manager完全指南:开源工具解决Steam游戏成就高效管理难题 【免费下载链接】SteamAchievementManager A manager for game achievements in Steam. 项目地址: https://gitcode.com/gh_mirrors/st/SteamAchievementManager Steam Achievemen…...
毕设程序java高校辅导员工作管理系统 基于SpringBoot的高校学生事务协同管理平台设计与实现 基于Java的高校学工一体化服务系统开发与应用
毕设程序java高校辅导员工作管理系统95jjf711 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。在高等教育持续扩张的当下,辅导员承担着学生日常管理和服务的重要职责&…...
