STM32Cube开发-PWM

2019-09-11来源: eefocus关键字:STM32Cube  PWM  定时器

上一章我们讲解了定时器的基本应用,以及定时器中断。这一章我们讲解通过定时器控制管脚输出PWM信号,控制LED实现呼吸灯。

1.    PWM简介

脉冲宽度调制(PWM),是英文“ Pulse Width Modulation” 的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制, PWM 原理如图所示:

 

上图就是一个简单的 PWM 原理示意图。图中,我们假定定时器工作在向上计数 PWM模式,且当 CNT=CCRx 时输出 1。那么就可以得到如上的 PWM示意图:当 CNT 值小于 CCRx 的时候, IO 输出低电平(0),当 CNT 值大于等于 CCRx 的时候,IO 输出高电平(1),当 CNT 达到 ARR 值的时候,重新归零,然后重新向上计数,依次循环。改变 CCRx 的值,就可以改变 PWM 输出的占空比,改变 ARR 的值,就可以改变 PWM 输出的频率,这就是 PWM 输出的原理。

2.    stm32cube配置和说明

打开STM32CubeMX新建工程,选择STM32F103ZET6芯片,选择外部高速晶振(HSE)。LED1管脚PB6配置为定时器4的通道1输出。同时TIM4的通道1配置为PWM。

 

 

脉冲宽度调制模式可以生成一个信号,该信号频率由自动重载寄存器(TIMx_ARR)寄存器值决定,其占空比则由捕获/比较寄存器(TIMx_CCRx) 寄存器值决定。在 PWM 模式下,计数器寄存器(TIMx_CNT )总是与捕获/比较寄存器(TIMx_CCRx )进行比较。 下图为PWM边沿对齐模式(递增计数配置)。图中CCRx为捕获/比较寄存器,OCxREF为输出比较信号,CCxIF为中断状态标识位。

当CCRX=4时,当捕获/比较寄存器(TIMx_CCRx)比计数器小时,输出高电平,反之则输出低电平。

下图为PWM中心对齐模式。

这里设置PWM周期为20ms,其他参数为默认不用修改。其中Pulse的为设置脉宽,即为捕获/比较寄存器(TIMx_CCRx)。通过修改它的值可以修改占空比。

 

生成报告,以及生成代码,编译程序。

3.添加应用程序

在tim.c文件中我们找到刚才的定时器初始化函数。


刚才说到的,设置Pulse的值可以修改脉宽。这里我们在main.c文件中添加一个用户PWM设置函数,函数的参数为修改的值。


在把main()函数中添加HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_1)开启定时器PWM输出。在while循环中不断修改脉宽,实现LED亮度渐变。Pulse的值最大为2000,从0开始,每100ms增加100,当增加到2000时,又逐渐递减到0。

在main.c函数前面声明pwm_value,step变量,User_PWM_Setvalue ()函数.编译程序下载(我这里LED等接在PB5,所以用杜邦线连接到PB6)。可以看到LED亮度循环逐渐变亮再变暗。

补充:TIM-PWM重映射配置,这里以TIM3_CH2部分映射为例,其他一样

其他配置跟上面一样,配置对应输入引脚就可以。


关键字:STM32Cube  PWM  定时器 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic474162.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32HAL库学习(二)CubeMx按键
下一篇:stm32GUI滑杆图形操作界面

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

使用STM32CubeMX,生成STM32F103ZE SPI3 HAL 工程
1,选择芯片型号为STM32F103ZET6,开始工程,引脚配置如下:主要是RCC,SPI3,和SYS三个模块2,时钟配置,可按下图进行:3,SPI3配置,如下图,配完这一步其它可以不管,直接生成工程。4,生成工程,打开工程手动输入红框中内容。运行:成功输出波形。
发表于 2019-10-18
使用STM32CubeMX,生成STM32F103ZE SPI3 HAL 工程
STM32CubeMX 软件使用学习笔记1
1:CubeMX是ST公司开发的一款软件,旨在通过图形化的配置MCU方式,来减轻开发人员的工作量,让大家更轻松,快乐。用户使用图形化工具配置MCU后,CubeMX可以根据用户选择的IDE,来生成对应的工程文件(包含了初始化代码),下文将介绍。可以在ST的官网上查看CubeMX的功能介绍,并下载CubeMX. https://www.st.com/en/development-tools/stm32cubemx.html2:CubeMX下载完成后,在安装时,会提示安装java sdk, 按提示安装即可。3:安装完成后,打开软件,界面如下。4:手动安装MCU软件包。菜单栏“Help”->“manage embedde
发表于 2019-10-08
STM32CubeMX 软件使用学习笔记1
stm32CubeMx CAN 发送数据
平台  STM32F429软件  STM32CubeMx 5.0.0固件库  STM32Cube_FW_F4_V1.23.0 目的: 实现 CAN 的发送 一  简介  CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准(ISO11898)。是国际上应用最广泛的现场总线之一。 在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议
发表于 2019-09-30
stm32CubeMx CAN 发送数据
STM32Cube HAL库中断处理机制,以及回调函数实现原理
1写在前面很多人都知道STM32CubeMX这套工具的一个目的:减少开发者对STM32底层驱动的开发时间,把重心放在应用代码上。但是,STM32CubeMX只是生成了底层驱动的初始化代码。所以,我们还需要掌握:应用层代码如何调用HAL库函数接口,以及HAL库中断处理机制等相关知识。HAL库牵涉的内容较多,本文拿HAL库中断处理来讲解,以及相关的回调函数。HAL库中断处理机制之前使用标准外设库开发时,中断程序(函数)由我们自己实现。而HAL库的中断处理函数是按照HAL处理机制来实现,如USART1,统一由HAL_UART_IRQHandler来进行处理,如下图:其它大部分外设(TIM、SPI、CAN...)中断都类似,HAL进行统一
发表于 2019-09-29
STM32CubeMX系列教程01_STM32Cube产品介绍
一、写在前面之前开发STM32,大家常见的就是使用寄存器、或者标准外设库进行开发。但是,从15、16年开始,ST逐渐停止了对标准外设库的更新和维护,转向了HAL和LL库。·SPL:Standard Peripheral Library标准外设库·HAL:Hardware Abstraction Layer硬件抽象层库·LL:Low-layer底层库我写STM32CubeMX系列教程有两个原因:1.停止标准库更新,使用STM32CubeMX配置HAL/LL库是主流;2.网上关于STM32CubeMX的教程相对凌乱,没有系统的进行讲解。该系列教程会从基础开始写起,以及结合实例代码详细讲述。后面实例我计划另开分支,比如针对F1系列就开一
发表于 2019-09-18
STM32CubeMX系列教程01_STM32Cube产品介绍
STM32CubeMX系列教程02_STM32CubeMX工具、HAL库下载、安装说明
一、写在前面上一篇文章是对STM32CubeMX做了一个简单介绍,可能初学者看了之后也不是很理解。那么本文开始动手实践,实践也是快速掌握知识的一种办法。本文针对初学者,内容比较基础,主要是给大家起引导作用。包含:下载JRE、STM32CubeMX和HAL库三部分内容。HAL库的几种安装方式。二、下载本节主要下载内容:JRE、STM32CubeMX和HAL库。2.1 下载JRE由于 STM32CubeMX 软件是基于 JAVA 环境运行的,所以需要安装 JRE (Java Runtime Environment)才能使用, 建议到官网下载最新版本JRE。地址:https://www.java.com/en/download
发表于 2019-09-18
STM32CubeMX系列教程02_STM32CubeMX工具、HAL库下载、安装说明
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved