搭建stm32电机控制代码框架(四)——单路PWM生成

news2025/1/15 17:38:23

STM32中单路PWM的生成一般是基于某一个通用定时器,本次小实验选取TIM2通用定时器,选择PA5作为PWM端口输出。配置步骤如下:

第一步:配置外部晶振与基本的时钟,如下图所示。

(1)选择外部晶振

 (2)配置时钟树,如下图所示,TIM2的时钟总线挂在ABP1上,此时时钟源为72M

第二步:配置GPIO,配置GPIO_PA5为TIM2_CH1的输出端口。

 第三步:配置TIM2时钟,其配置如下图所示,图中1-6分别为

  1. 选择时钟源为内部时钟;
  2. 选择通道1为PWM生成模式;
  3. TIM2内部分频系数为7200-1=7199,到达7200分频的效果;
  4. 设置累加计数的TPRD值为5000 - 1 = 4999 达到的是5000的效果;
  5. Pulse设置占空比,1000/5000 = 20% 此时占空比为20%。
  6. PWM比较值电平跳变的模式,模式1是到达比较值跳变为低,模式2是到达比较值跳变为高,一个先高后低,一个先低后高。

 第四步:在代码内打开定时器TIM2的第一个通道,这步很关键,必须要用户自己打开,CUBEMX仅仅只是帮我们把底层配置好,这个开关还是靠我们自己定义,代码如下。

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_TIM2_Init();
  /* USER CODE BEGIN 2 */
	HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);   //主要是这句

 第五步:进行实验,实验结果如下图所示,第一张是mode1,第二章是mode2,结果如设计所得。这里需要解释一下的是为什么周期是500ms,因为时钟是72M的,但是分频数是7200,所以此时TIM2的7200个时钟脉冲代表1s,而此时count period的值是5000,5000/10000*1s = 0.5s所以周期就是500ms。

 

 

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

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

相关文章

关于java k8s容器环境中的jvm配置与优化

1. 前言 环境 版本 备注 k8s v1.22 配置cpu/mem limit、健康/就绪检查 openjdk 8 openjdk version "1.8.0_342" k8s容器化(docker)环境更好的解决了 java app 运行环境的封装问题。但存在着一些限制,比如 Java 并不能发现…

流马平台连接数据库

新增数据库配置 在环境管理处对于环境下新增数据库配置 编辑SQL 在用例管理-步骤编辑-逻辑控件处添加前置SQL,编辑SQL 选择数据库名称,查询语句,填写要保存的变量名,并在下方填写查询语句 示例从user表中取出username和passwo…

Semi-supervised Learning(半监督学习)

目录 Introduction Why semi-supervised learning help? Semi-supervised Learning for Generative Model Supervised Generative Model Semi-supervised Generative Model Low-density Separation Assumption Self Training Entropy-based Regularization(基…

docker启动MYSQL8并挂载数据目录

1.创建需要docker挂载的数据目录 mkdir -p /datah/mydata/mysql/conf mkdir -p /datah/mydata/mysql/data mkdir -p /datah/mydata/mysql/log mkdir -p /datah/mydata/mysql/mysql-files 2. 在目录下面 /datah/mydata/mysql/conf 创建配置文件 my.cnf [client] default-charact…

VH6501使用

目录 1.VH6501接口介绍 2.使用场景 2.1当VH6501作为硬件接口卡作通信/监测使用时,使用CH1的任意接口与总线连接即可 2.2针对单节点干扰时,使用CH1的任意接口与被测节点连接即可 2.3针对多节点干扰时,需要通过CH1的两个接口将VH6501串联到…

C++ ---- 模板

目录 泛型编程 函数模板 函数模板语法 模板使用 函数模板原理 函数模板的实例化 隐式实例化 显示实例化 模板参数的匹配原则 类模板 类模板的定义语法 类模板的实例化 非类型模板参数 类模板的特化 全特化 半特化(部分特化) 两个参数偏…

排查Javascript内存泄漏案例(一)

Chrome DevTools里的Performance面板和Memory面板可以用来定位内存问题。 如何判断应用发生内存泄漏? 为了证明螃蟹的听觉在腿上,一个专家捉了只螃蟹并冲它大吼,螃蟹很快就跑了。然后捉回来再冲它吼,螃蟹又跑了。最后专家把螃蟹的…

浅谈 ChatGPT —— 现代巴别塔

theme: nico 一、用 ChatGPT 一搜就到你这了 ChatGPT 在去年 11 月发布以后,上线 5 天后就有了 100 万用户,上线两个月后已有上亿用户,可谓一炮而红。起初我对 ChatGPT 是没有什么感知的,我单纯认为人工智能还没有发展到完全超越人…

数字经济等相关概念与官方文档

一、数字经济 数字经济,作为一个内涵比较宽泛的概念,凡是直接或间接利用数据来引导资源发挥作用,推动生产力发展的经济形态都可以纳入其范畴。在技术层面,包括大数据、云计算、物联网、区块链、人工智能、5G通信等新兴技术。在应…

美食菜谱类APP小程序开发功能有哪些?

想要开发出一款靠谱好用的美食菜谱APP小程序系统,需要具备哪些基本功能呢? 1、视频教学。对于美食的教学教学方法最直接受用的就是视频教学,用户浏览起来更加方便而且可以直接跟着视频操作,效果更佳。用户也可以自己拍摄制…

JVM垃圾回收篇之相关概念和算法

垃圾回收相关概念 什么是垃圾 垃圾就是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收掉的垃圾,如果不及时进行清理,越积越多就会导致内存溢出. 为什么需要GC 不进行回收,早晚会导致内存溢出,Java自动管理垃圾回收,不需要开发人员手动干预,这就有可能导致开…

【记录】OLAP和OLTP

下面为提炼的重点内容,全部内容参考:OLAP和OLTP OLAP和OLTP的不同设计要求 对于OLTP系统和OLAP系统有哪些不同的要求?要说清楚这个,首先需要分析一下这两个系统的关键特征。 对于OLTP系统来说,最重要的事情是&#…

LIS系统字典模块功能

字典管理模块: 系统参数功能简介:集中设置系统使用过程中所需的参数值,一般由开发或实施人员进行设置。 标本管理功能简介:标本管理是对检验业务中涉及的检验标本类型进行初始化设置, …

Spring Cloud Zuul 是什么?如何使用它来实现 API 网关?

Spring Cloud Zuul 是什么?如何使用它来实现 API 网关? 在微服务架构中,服务之间的通信变得非常频繁和复杂。为了简化服务之间的通信和管理,很多企业都采用了 API 网关的架构模式。API 网关可以帮助我们统一处理服务的入口、路由…

【简单实用框架】【AddressablesMgr】【可移植】

☀️博客主页:CSDN博客主页💨本文由 萌萌的小木屋 原创,首发于 CSDN💢🔥学习专栏推荐:面试汇总❗️游戏框架专栏推荐:游戏实用框架专栏⛅️点赞 👍 收藏 ⭐留言 📝&#…

提升您的 MQTT 云服务:深入探索 BYOC

引言 您是否希望将物联网基础设施提升到更高的水平?为了应对业务的不断扩展,您需要一个强大且安全的消息平台来支持它。 MQTT 协议凭借其轻量级、发布/订阅模型和可靠性,已经成为构建物联网平台的首选方案。但是,随着业务的增长…

​力扣解法汇总1110. 删点成林

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: GitHub - September26/java-algorithms: 算法题汇总,包含牛客,leetCode,lintCode等网站题目的解法和代码,以及完整的mode类&#…

Linux安装Redis数据库,实现远程连接

文章目录 1. Linux(centos8)安装redis数据库2. 配置redis数据库3. 内网穿透3.1 安装cpolar内网穿透3.2 创建隧道映射本地端口 4. 配置固定TCP端口地址4.1 保留一个固定tcp地址4.2 配置固定TCP地址4.3 使用固定的tcp地址连接 转发自cpolar内网穿透的文章:公网远程连接…

L-shape 方法

L-shape 方法是求解两阶段随机规划的一种常用方法,基本思想是利用切平面将第二阶段的反馈函数线性化,在构造切平面条件时有点类似 bender’s 方法。 注:这个图形中黑实线 Q ( x ) \mathcal{Q}(x) Q(x) 就是下面模型中的 L ( x ) \mathscr{L…

剑指 Offer 04. 二维数组中的查找解题思路

文章目录 标题解题思路优化 标题 在一个 n * m 的二维数组中,每一行都按照从左到右 非递减 的顺序排序,每一列都按照从上到下 非递减 的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整…