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

这篇具有很好参考价值的文章主要介绍了搭建stm32电机控制代码框架(四)——单路PWM生成。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

(1)选择外部晶振

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

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

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

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

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

 第三步:配置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是到达比较值跳变为高,一个先高后低,一个先低后高。

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

 第四步:在代码内打开定时器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。

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

 文章来源地址https://www.toymoban.com/news/detail-469302.html

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

 

到了这里,关于搭建stm32电机控制代码框架(四)——单路PWM生成的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 搭建stm32电机控制代码框架(二)——Stm32CubeMx配置定时器

    搭建了基础的环境,配置了一个简单的工程后,CubeMx的基本操作就会了。然后基于这个操作往下推进,开始对关键模块定时器的攻略,这个部分需要先熟悉一下Stm32的定时器基本原理。 《STM32参考手册》中仅对定时器的介绍就已经占了100多页,这里就不一一展开,挑一些关键

    2024年02月06日
    浏览(49)
  • STM32PWM控制直流电机

    PWM介绍 脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用 微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽 度的控制 PWM的原理: 假定定时器工作在向上计数 PWM 模式,且当 CNT=CCRx 时输出 1。那么就可以

    2024年02月08日
    浏览(21)
  • STM32第八课:PWM控制直流电机

            TB6612FNG是一款新型驱动器件,能独立双向控制2个直流电机,它具有很高的集成度,同时能提供足够的输出能力,运行性能和能耗方面也具有优势因此在集成化、小型化的电机控制系统中,它可以作为理想的电机驱动器件。                           

    2024年03月24日
    浏览(22)
  • STM32 Simulink 自动代码生成电机控制——无感六步方波仿真

    目录 前言  无感控制理论 仿真  过零检测 反电动势采样 系统运行 ​编辑 总结 STM32 Simulink 自动代码生成电机控制——霍尔有感六步方波仿真到开发板运行-CSDN博客 前面文章实现了有感方波控制再到开发板运行,关于无感方波控制的仿真已经在同一个模型里实现。在落实到硬

    2024年04月11日
    浏览(27)
  • STM32-微项目03-pwm控制直流电机运行

    一,项目目标 实现利用STM32F103C8T6+TB6612,输出不同占空比输出的PWM波,从而实现电机不同转速的运行、正反转的功能;    二、硬件涉及 1,STM32核心板 2,TB6612直流电机驱动模块 3,直流电机  三、硬件接线涉及 1,先看TB6612直流电机驱动模块: ①驱动模块是具备两路PWM输入

    2024年02月04日
    浏览(23)
  • STM32输出PWM波控制电机转速,红外循迹避障智能车+L298N的详细使用手册、接线方法及工作原理,有代码

    本设计的完整的系统主要包括STM32单片机最小系统、L298n电机驱动,超声波 ,舵机 ,红外模块等。寻迹小车相信大家都已经耳熟能祥了。 我们在这里主要讲一下L298N驱动电机和单片机输出PWM控制电机转速。 本设计软件系统采用模块设计思想,采用C语言作为程序设计语言,通

    2024年01月17日
    浏览(23)
  • STM32循迹小车系列教程(一)—— 使用PWM控制电机

    本章节主要讲解直流减速电机控制原理,电机驱动电路,以及如何使用PWM控制直流减速电机 1.软件准备:STM32CubeMx、Keil5_ MDK 2.硬件准备:STM32F103C8T6核心板、TB6612电机驱动模块/L298N电机驱动、18650锂电池3节/3S航模电池、杜邦线若干         图2-1为 市场上 常用 的 直流减速 电

    2024年02月05日
    浏览(22)
  • STM32 Simulink 自动代码生成电机控制——记录一次电机初始位置检测及NS极的判断实验

    目录 前言  基本原理 仿真实现 代码生成及开发板验证 之前做了脉振高频注入的仿真到代码生成开发板运行的实验,电机可以通过高频注入计算出角度,但是在初始位置检测的时候,尝试了不少方法但是效果一般,很容易反转,由于时间关系没有花太多时间和精力,最近又尝

    2024年02月13日
    浏览(26)
  • 用STM32定时器中断产生PWM控制步进电机

    控制步进电机可以使用PWM、定时器中断、延时,这里用的就是 定时器中断来让它转动。 板子用的是正点原子的STM32F103 mini板,驱动器是DM420(DM420驱动器资料),用开关电源供电,电机就是普通的42步进电机,步距角为1.8°,虽然按照图片来看它是个蠕动泵。如下图 PUL+——PB0,

    2023年04月09日
    浏览(24)
  • 使用Simulink代码生成工具基于STM32开发板对永磁同步电机进行开环控制

    代码链接:【免费】使用Simulink代码生成工具对永磁同步电机进行开环控制资源-CSDN文库 本文介绍使用Simulink代码生成功能在STM32开发板平台上运行永磁同步电机。 硬件基础: Nucleo-G431RB开发板 X-NUCLEO-IHM07M1驱动扩展板 57BLDC-24V-210W时代超群直流电机 软件基础: MATLAB 2022b 安装

    2023年04月14日
    浏览(30)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包