【驱动程序】霍尔编码器电机_CubeMX_HAL库

【驱动程序】霍尔编码器电机_CubeMX_HAL库

电机型号:MG310 霍尔编码器电机

驱动模块:L298N

接线

在这里插入图片描述

注:

  • L298N 12V接线柱位置可以接50V~5V
  • 当跳线帽接入时,5V接线柱为5V输出,可以给驱动板供电
  • 当跳线帽拔出时,5V接线柱为5V输入

CubeMX 配置

  • PB4(TIM3-CH1) 和 PB5(TIM3-CH2) 为PWM输出模式
  • PB3(TIM2-CH2) 和 PA15(TIM2-CH1) 为输入捕获模式 NVIC中断使能
  • TIM4设为定时中断 NVIC中断使能

注:芯片型号为stm32f103C8T6,根据芯片型号不同,配置的时钟通道的管脚也不同

共两个代码文件

  1. encoder_motor.c
  2. encoder_motor.h

encoder_motor.c

#include "encoder_motor.h"/*
PWM输出
PB5-TIM3-CH2
PB4-TIM3-CH1
*/
//占空比设定 最大值为重装载值
void Encoder_PWM_PB5(int n)
{TIM3->CCR2 = n;
}
void Encoder_PWM_PB4(int n)
{TIM3->CCR1 = n;
}/*
脉冲捕获
PB3-TIM2-CH2
PA15-TIM2-CH1
*/
int Encoder_Num_Pulse = 0; // 脉冲记数值
int Encoder_Speed = 0; // 速度值//脉冲捕获
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{if(htim->Instance == TIM2){Encoder_Num_Pulse++;}
}//速度检测,放在定时中断里
int Encoder_Chack(void)
{int a = Encoder_Num_Pulse;Encoder_Num_Pulse = 0;return a;
}

encoder_motor.h

#ifndef _ENCODER_MOTOR_H_
#define _ENCODER_MOTOR_H_#include "my_core.h"
void Encoder_PWM_PB4(int n);
void Encoder_PWM_PB5(int n);extern int Encoder_Num_Pulse; // 脉冲记数值
extern int Encoder_Speed; // 速度值
int Encoder_Chack(void);
#endif

代码使用说明

Encoder_Chack();放在定时中断里使用

stm32f1xx_it.c

/*** @brief This function handles TIM4 global interrupt.*/
void TIM4_IRQHandler(void)
{/* USER CODE BEGIN TIM4_IRQn 0 */Encoder_Speed = Encoder_Chack();/* USER CODE END TIM4_IRQn 0 */HAL_TIM_IRQHandler(&htim4);/* USER CODE BEGIN TIM4_IRQn 1 *//* USER CODE END TIM4_IRQn 1 */
}

开启PWM输出、捕获中断、定时中断

main.c

int main()
{//...HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1);//开启PWM通道HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_2);//开启PWM通道HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1);//开启捕获中断HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_2);//开启捕获中断HAL_TIM_Base_Start_IT(&htim4);//开启定时中断while(1){//...}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/873251.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

内部类+图书管理系统

内部类图书管理系统 1. 实例内部类1.1 实例内部类的结构1.2 实例内部类的一些问题1.2.1 如何在main中创建实例内部类对象?1.2.2 内部类成员变量被static修饰问题?1.2.3 内部类和外部类变量重名的调用问题?1.2.4 外部类访问内部类变量的问题 2…

电商人批量下载神器阿里国际高清主图、详情图、sku及视频信息

电商领域,图片是商品静默的推销员。高质量的图片能吸引顾客目光,传达商品信息,提升购买欲望。它影响产品的第一印象,直接关联转化率和销售额。简而言之,优质图片对电商至关重要。 使用图快下载器,小编给大…

彻底解决idea的编解码问题

一、打开idea,找到Setting,点击File Encoding编解码设置,将以下标红的三个部分全部设置为UTF-8.同理如果你的项目使用的是GBK或者其他编码格式,那么也设置为统一。 二、点击Java Compiler设置补齐-encoding utf-8参数 三、如果你的项目使用到…

Tailwind CSS常见用法

1. 布局类 container:创建一个最大宽度的容器,用于页面布局。 flex:使元素成为弹性容器。 grid:使元素成为网格容器。 mx-auto:使元素水平居中(通常需要设置宽度)。 2. 间距类(Mar…

基于PHP+MYSQL开发制作的趣味测试网站源码

基于PHPMYSQL开发制作的趣味测试网站源码。可在后台提前设置好缘分, 自己手动在数据库里修改数据,数据库里有就会优先查询数据库的信息, 没设置的话第一次查询缘分都是非常好的 95-99,第二次查就比较差 , 所以如果要…

ARP安全简介

ARP安全简介 地址解析协议ARP(Address Resolution Protocol)安全是针对ARP攻击的一种保护特性,通过部署ARP安全的相关特性,不仅能够防范针对ARP协议的攻击,还可以防范网段扫描攻击等基于ARP协议的攻击,保证…

Redis 关于内存碎片的解决方法

今天生产机报内存爆满异常被叫过去查看问题,通过各种排除最终定位到了Redis的内存碎片的问题,这篇博客将详细介绍Redis内存碎片问题并给出最佳实践解决此问题。 Redis的内存碎片原理 先引用Redis官方的原话: 当键被删除时,Redis …

微服务:nacos

Nacos 由Alibaba推出的集成于SpringCloudAlibaba中的一款开源注册中心框架 主要功能: 注册中心 配置管理 nacos的安装和部署 nacos默认访问端口8848 docker pull nacos/nacos-server:1.2.0 docker run --env MODEstandalone --name nacos --restartalways -d -p 8848:8…

【Oracle】Oracle中的行转列、列转行(unpivot、pivot函数)

目录 相关解释行转列的应用场景:列转行的应用场景:实现方式 Oralce中的行转列:PIVOT函数语法:示例: Oralce中的行转列:UNPIVOT函数语法:示例: 两个函数的优缺点行转列的优点&#xf…

uniapp H5 如何根据接口返回form表单,跳转银联支付界面?

uniapp如何根据form表单,唤醒第三方支付? 文章目录 uniapp如何根据form表单,唤醒第三方支付?效果图实现 效果图 接口返回 form 表单数据 实现 // 例请求成功,返回数据 rechargePay({}).then(res > {// 接收接口返回数据let { result …

JavaScript 获取 url(get)参数

https://andi.cn/page/621584.html

linux 报错:bash: /etc/profile: 行 32: 语法错误:未预期的文件结束符

目录 注意错误不一定错在最后一行 i进入编辑 esc退出编辑 :wq 保存编辑退出 :q!不保存退出 if [ $# -eq 3 ] then if [ ! -e "$1" ]; then miss1 $1 elif [ ! -e "$2" -a ! -e "$3" ]; then miss2and3…

【贪心算法】力扣1481.不同整数的最少数目

给你一个整数数组 arr 和一个整数 k 。现需要从数组中恰好移除 k 个元素,请找出移除后数组中不同整数的最少数目。 示例 1: 输入:arr [5,5,4], k 1 输出:1 解释:移除 1 个 4 ,数组中只剩下 5 一种整数。…

【BUG】已解决:zipfile.BadZipFile: File is not a zip file

已解决:zipfile.BadZipFile: File is not a zip file 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科班出身,就职于医疗科技公司,热衷分享知识,武汉城市开发…

嵌入式驱动源代码(13):电子时钟万年历设计

目录 说明 硬件设计 系统软件 说明 本系统的主要功能是:阴历阳历显示,时间显示,闹钟功能,自定义时间,还有显示外界温度。 其次对电路图的电源设计,本系统采用了3节干电池的电池盒供电,并没有使用一些变压器,和全桥整流芯片。5v左右的电池盒也实现了单片机的5v左右…

[word] word表格跨页断开实现教程 #职场发展#媒体

word表格跨页断开实现教程 选中整个word表格 单击鼠标右键,选择“表格属性”选项 切换至“行”标签,找到“允许跨页断行”选项 勾选上“允许跨页断行”,单击“确定”按钮,完成! word表格跨页断开实现教程的下载地址&a…

经典神经网络(14)T5模型原理详解及其微调(文本摘要)

经典神经网络(14)T5模型原理详解及其微调(文本摘要) 2018 年,谷歌发布基于双向 Transformer 的大规模预训练语言模型 BERT,而后一系列基于 BERT 的研究工作如春笋般涌现,预训练模型也成为了业内解决 NLP 问题的标配。 2019年,谷歌…

关于Centos停更yum无法使用的解决方案

最近在使用Centos7.9系统时候,发现yum仓库无法进行安装软件包了,官方说2024年6月30日进行停更,停更后无法提供对应的软件服务。 我在使用yum安装包的时候发现确实不能使用官方服务了: CentOS停更的影响 CentOS停止更新之后&#…

【中项】系统集成项目管理工程师-第2章 信息技术发展-2.1信息技术及其发展-2.1.1计算机软硬件与2.1.2计算机网络

前言:系统集成项目管理工程师专业,现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试,全称为“全国计算机与软件专业技术资格(水平)考试”&…

【技术追踪】TeethDreamer:从 5 张口腔照片实现三维牙齿重建(MICCAI-2024)

三维重建搞起来~ TeethDreamer:一种3D牙齿重建新框架,旨在恢复上下牙齿的形状和位置,引入大型扩散模型的先验知识和3D感知特征注意力机制,重建性能表现SOTA! 论文:TeethDreamer: 3D Teeth Reconstruction f…