stm32 HAL库 4096线ABZ编码器

这篇具有很好参考价值的文章主要介绍了stm32 HAL库 4096线ABZ编码器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

@[TOC]目录

ABZ编码器 4096线

买的是这个
hal库abz编码器,stm32,嵌入式硬件,单片机
AB相代表计数方向,Z代表过零点
hal库abz编码器,stm32,嵌入式硬件,单片机

cubemx配置

定时器Encoder

hal库abz编码器,stm32,嵌入式硬件,单片机

也可以选上DMA
hal库abz编码器,stm32,嵌入式硬件,单片机

中断
hal库abz编码器,stm32,嵌入式硬件,单片机

Z相GPIO中断

找一个空闲管脚
hal库abz编码器,stm32,嵌入式硬件,单片机
打开对应中断
hal库abz编码器,stm32,嵌入式硬件,单片机

代码

不用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
hal库abz编码器,stm32,嵌入式硬件,单片机文章来源地址https://www.toymoban.com/news/detail-854769.html

到了这里,关于stm32 HAL库 4096线ABZ编码器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32】【HAL库】定时器编码器模式测速

    目录 概述 HAL设置  定时器的编码器模式 定时器设置  常用函数 代码 电机AB相增量型编码器的介绍和解码方法在这里介绍过了 电机编码器 https://blog.csdn.net/m0_57585228/article/details/125791283 测速可以使用外部中断进行脉冲计数 很多型号的单片机中有专门的电路来计算脉冲的速度和

    2023年04月18日
    浏览(56)
  • 【STM32】HAL库自学记录-旋转编码器的使用

    通过本文可学会两种实现判断旋转编码器正转反转的方法,可根据自己的应用场景来选择使用哪种方法。 1、芯片:STM32F103RCT6 2、STM32CubeMx软件 3、IDE: MDK-Keil软件 4、旋转编码器模块 5、XCOM V1.4串口软件 图中C端为GND。 方向 :A相和B相相差一个相位,一般来说是90°。A相信号在

    2024年02月11日
    浏览(48)
  • STM32(HAL库)——光电编码器、M/T法测量电机转速

    目录 一 编码器 二 电机测试的三种方法 三 STM32CubeMx配置 四 程序编写 五 实验结果 常见的用于电机测速的编码器有霍尔编码器和光电编码器两种。两者测速的基本原理不同,但都是输出两路相位差90°的脉冲信号。这里以光电编码器为例介绍一下测速原理。 光电编码器是由光

    2024年02月07日
    浏览(55)
  • STM32定时器编码器模式实现直流有刷电机测速(HAL库)

    最近在做一个单片机大作业,要用到直流有刷,在这里把学习编码器的知识记录一下,学习参考资料: 正点原子DMF407电机控制专题教程_V1.0 我所使用的编码器是市面上常见的 磁电增量式编码器 ,其有AB两相,用于输出电机转动时的 脉冲数 ,AB两相的先后顺序决定了电机的

    2023年04月24日
    浏览(64)
  • stm32(HAL)库编码器电机pid代码及利用VOFA+对Pid波形显示调参

    PID控制是一种经典的反馈控制算法,它通过不断地调整输出来使系统的实际值与设定值尽量接近,并保持在设定值附近。PID控制器由三个部分组成:比例§、积分(I)和微分(D)。 比例作用(P):比例作用通过测量实际值与设定值之间的偏差,乘以一个比例系数来产生输出。输出

    2024年02月13日
    浏览(58)
  • HAL STM32 硬件I2C方式读取AS5600磁编码器获取角度例程

    📍相关篇《STM32 软件I2C方式读取AS5600磁编码器获取角度例程》 ✨stm32使用硬件I2C去读取角度数据,通过STM32CubeMX工具配置工程,读取角度数据,只需要调用一个函数,即可完成数据的读取。了解函数的用法以及从设备地址命令,上手十分快速和简单。 📌AS5600资料: https://p

    2024年04月26日
    浏览(66)
  • STM32(HAL)--使用定时器TIM的Encoder Mode来读取旋钮编码器的脉冲数

    目录 一 旋钮编码器相关知识 二 STM32CubeMx配置 三 程序编写 3.1 相关函数介绍 3.2 程序编写 四 实验结果 旋转编码器是一种位置传感器,输出脉冲信号可以用来确定编码器的旋转角度和旋转方向。 编码器中有两个开关,当旋钮旋转后,开关会依次导通,开关结构图如下图所示

    2024年02月15日
    浏览(52)
  • (四) timer+pit(定时器中断)+encoder(编码器)-逐飞TC264库学习(对比STM32 HAL库)

    PIT , 是programmable interval timer 可编程间隔定时器 DSC中的器件 的缩写,所以就是定时器中断,有点像32里的timer(TIMx) 目前看来一共能用通道的有四个 typedef enum // 枚举通道号 {     CCU60_CH0,     CCU60_CH1,     CCU61_CH0,     CCU61_CH1, }pit_index_enum; 因为涉及到中断,为方便设定中断优

    2024年03月15日
    浏览(71)
  • MT6701磁编码器使用指南,14Bit单圈绝对值,I2C stm32 HAL库读角度,兼容AS5600

      MT6701是麦歌恩(MagnTek)公司的磁性角度传感器芯片,提供14Bit 0~360°单圈绝对角度检测,拥有 ABZ/PWM/模拟量/I2C/SSI 等多种信息输出方式,还可根据磁场强度的瞬时变化提供非接触式按压检测功能。能够以较低的成本来替代传统光电编码器,可应用于绝对值角度输出、闭环

    2024年02月02日
    浏览(48)
  • 【嵌入式】STM32计时器编码器接口模式使用

    使用STM32调试电机或传感器时经常会使用到计数器的编码器接口模式,本文主要记录该模式的固件库配置方法,并给出使用该模式获取光栅测距值的实例。 硬件: STM32F103C8T6 光栅测距传感器 编码器接口模式为STM32计时器的一种特殊使用模式,该模式下可对编码器输出的脉冲信

    2024年02月20日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包