首页 > 其他分享 >在STM32CubeMX中配置 PWM

在STM32CubeMX中配置 PWM

时间:2024-10-21 20:46:51浏览次数:7  
标签:定时器 配置 STM32CubeMX TIM 占空比 100 PWM

一、基本配置

  首先来基本的配置

1.将debug  改为  模拟输出

2.在RCC中选择内部晶振(有需要也可以选外部晶振)

3.开始配置引脚

4.配置时钟树(省略)

这里我设置72HZ 

5.最后的收尾设置(前面一期有讲)

 正式开始PWM的配置

 1、PWM的设置需要 定时器的时钟 来控制频率(具体的可以看另一期文章)

      这里以TIM3的Channel1为例介绍。

        

2、先开启内部时钟,然后选择PWM的模式一

可以看到PA6被设置 TIM_CH1

3、接着配置参数

前面提到时钟树72MHZ ,也就是7200万脉冲每秒,为了方便计算,可以将它72分频,这样定时器便是每秒计数1000000次。

可以将自动重装载值设置为数100次,每秒就会有一万次从0数到99的过程,也就是说一秒钟就会输出1万组PWM波形,这就是PWM的频率,10000HZ。

从0数到99这一过程所用的时间也就是PWM的周期,万分之一秒,0.1ms。

由于自动重装值设置为了100-1,所以比较寄存器的值只能在0-99中赋值。

比如这里给50。那么初始的占空比,就是50/100=50%.

之后写代码改变 比较寄存器 的值时候,改的就是这个 50.

如果ARR给2000-1,那么你的比较寄存器的值就是在0-1999之间设置。占空比计算同理。

4、NVIC使能(图略)

至此基本配置结束。后面再收尾生成代码即可。

二、在keil5中编写代码 改变PWM的占空比

找中断服务函数和回调函数的过程不在赘述,在前面 定时器中断 那里有介绍。

这里也是利用 定时器内部中断的方式 来控制PWM的占空比。

这是使能的代码。

下面来看具体的函数实现部分。

int i = 0;

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
	if(htim -> Instance == TIM3)
	{
		__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_3,i+=20); 
		
		if(i == 100)
		{
			i = 0;
		}
		
	}
}

 这样就可以实现 一个定时器产生中断,每秒触发一次中断,在中断服务程序中,改变PWM的占空比,实现LED亮度的周期性变化。

这里提一下,LED的引脚 应该负极接地,正极链接到PWM的输出口。

---------------------------------------------------------------------------------------------------------------

文章结束,记录stm32学习。

标签:定时器,配置,STM32CubeMX,TIM,占空比,100,PWM
From: https://blog.csdn.net/2403_87830841/article/details/143116910

相关文章

  • 基于深度学习CNN算法的花卉分类识别系统01-python-带UI-包配置
    项目基本介绍:【算法】深度学习CNN网络mobilenet算法网络【环境】python>=3.8pytorchopencvpyqt5matplotlib(含详细环境配置教程视频)【文件】训练、预测全部源代码、训练好的模型、数据集、模型评价指标:训练acc/loss曲线图和混淆矩阵图、U1界面源码及源文件、环境配置......
  • 基于深度学习CNN网络的人脸表情识别系统-带UI界面-数据集-包配置
    项目基本介绍:【算法】深度学习CNN网络mini-xception算法网络【环境】python=3.8tensorflowopencvpyqt5matplotlib等(含详细环境配置教程视频)【文件】训练、预测全部源代码、训练好的型、数据集、模型评价指标:训练acc/loss曲线图和混淆矩阵图、U1界面源码及源文件、环......
  • python基于深度学习算法的手写汉字识别-带UI界面-包环境配置运行
    1)项目基本介绍网络:深度学习CNN网络简单搭建的CNN网络环境:python>=3.5tensorflow2opencvpyqt5文件:训练预测全部源代码、训练好的模型、数据集可对20个汉字进行识别检测,配置好环境即可使用。......
  • 深度学习CNN算法狗类识别系统01-python带pyqt5界面数据集包配置
    项目基本介绍:【算法】深度学习CNN网络xception算法网络【环境】python=3.8pytorchopencvpyqt5matplotlib(含详细环境配置教程视频)【文件】训练、预测全部源代码、训练好的型、数据集、模型评价指标:训练acc/loss曲线图和混淆矩阵图、UI界面源码及源文件、环境配置教程视......
  • JavaWeb:实验一JSP运行环境安装及配置
    **制作一个静态网站的基本页面index.html,要求如下:1.页面布局采用框架实现,页面布局及样式如图1所示。**2.在页面的A部分显示显示“登录”和“注册”链接。单击“登录”链接,在C部分显示登录页面,登录页面包含一个HTML表单,页面参考样式如图2所示;单击“注册”链接,在C部分显示注册页面......
  • ABY配置文档
    首先下载相关的依赖文件: sudoapt-getinstallgitsudoapt-getinstallg++sudoapt-getinstallmakesudoapt-getinstallcmakesudoapt-getinstalllibgmp-devsudoapt-getinstalllibssl-devsudoapt-getinstalllibboost-all-dev接下来克隆代码库:gi......
  • 计及源荷不确定性的综合能源生产单元运行调度与容量配置优化研究(Matlab代码实现)
    ......
  • Eclipse的安装及配置(详细图解版)
    Eclipse的安装及配置1、Eclipse的安装2、Eclipse的配置3、创建一个普通的java项目1、Eclipse的安装进入官网下载EclipseEclipse官网下载地址点击DownloadPackages进入下载界面(这样下载zip的压缩文件并解压即可使用,无需安装)找到EclipseIDEforEnterpriseJavaa......
  • Spring声明式事务管理:深入探索XML配置方式
    前言Spring的事务管理,无论是基于xml还是注解实现,本质上还是实现数据库的事务管理机制,因此要注意发送SQL的连接是否为同一个,这是实现声明式事务的关键。 以下案例和实现基于SSM整合框架完成,不知道如何整合SSM,可以参考我之前的博客。准备工作 第一步:添加Spring相关依赖包......
  • 使用route命令进行ubuntu网络配置
    参考:route命令详解与使用实例-简书(jianshu.com)Linux路由表详解及route命令详解_useifacebr-b548282d0156-CSDN博客以下是Ubuntu中常用的网络命令:ifconfig:查看和更改网络接口的地址和参数。netstat:查看网络连接、路由表、接口统计等信息。route:查看和修改IP路由表......