STM32CubeMX(Keil5)开发之路——7输出PWM

发布者:乐呵的挑最新更新时间:2019-06-18 来源: eefocus关键字:STM32CubeMX  PWM 手机看文章 扫描二维码
随时随地手机看文章

运行环境

Windows10

STM32CubeMX___Version 5.0.0

Keil5(MDK5)___Version 5.15

简介

本例程主要讲解如何设置PWM这只输出4路PWM信号


STM32CubeMx基本配置

基础配置过程请参考 STM32CubeMx(Keil5)开发之路—配置第一个项目


STM32CubeMx PWM配置

1——点击TIM2进行设置

2——4个Channel都选择 “PWM Generation CHx” 选项

3——预分频值填72-1即71

4——自动重装载值设置为100-1也就是99

5——会看到相应的输出管脚PA0——PA3就是PWM的输出管脚

讲解:PWM波的频率=时钟频率/(预分频+1)/(自动重装载值+1)

即 :72000000/72/100=10000(HZ)

时钟频率/(预分频+1):表示每秒计数的个数

(自动重装载值+1):表示一共计这么多个

总体来看,每秒计72000000/72=1000000个,即1us计数一次,一共计数100次,那么计数100次需要花得时间为100us,所以完成一个周期需要的时间是100us,频率就是10000HZ


代码修改

1——选择main.c文件

2——在USER CODE中添加如下代码,打开PWM定时器

3——在USER CODE中接着添加如下代码,设置占空比

占空比分别为:PA1——20/100 ,PA2——25/100, PA3——33/100, PA4——50/100


  /* USER CODE BEGIN 2 */


  HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);

  HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);

  HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_3);

  HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_4);

  

  __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, 20);

  __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_2, 25);

  __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_3, 33);

  __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, 50);

  

 

  /* USER CODE END 2 */


烧录代码后用示波器测试PA0——PA3这四个管脚,正确的话会看到如下波形


       


关键字:STM32CubeMX  PWM 引用地址:STM32CubeMX(Keil5)开发之路——7输出PWM

上一篇:关于STM32像EPROM一样可以单字节写内部Flash的理解
下一篇:STM32CubeMX(Keil5)开发之路——9设置微秒级别的延时

推荐阅读最新更新时间:2024-11-09 08:54

WS2812灯珠(三)-- STM32 PWM+DMA方式驱动
一、理论 PWM输出就是对外输出脉宽(即占空比)可调的方波信号,信号频率由自动重装载寄存器ARR的值决定,占空比由比较寄存器CCR的值决定。 由WS2812规格书可知: WS2812灯珠的通信速度为800Kbit/s。 数据传输时间(TH+TL=1.25us+/-600ns) 故在配置STM32定时器时可设置,预分频因子为0,自动重装载初值为90-1,则频率为72M/90 = 800K。 设值占空比为45可满足1码的时间要求,设值占空比为30可满足0码的时间要求。 二、代码实践 这里在代码中具体用到的时PA0引脚(TIM2的CH1) 头文件:通过宏配置需要控制的灯珠数目 #ifndef __BSP_W
[单片机]
WS2812灯珠(三)-- STM32 <font color='red'>PWM</font>+DMA方式驱动
PWM控制电机速度的基本原理
做STM32智能小车的实验中会用到定时器PWM输出,来改变直流电机的转速。分享本文了解如何通过PWM实现对电机速度的控制。 PWM控制电机速度的基本原理 PWM(Pulse Width Modulation),也就是脉冲宽度调制。 PWM中有一个比较重要的概念,占空比:是一个脉冲周期内有效电平在整个周期所占的比例。 为了实现IO口上电压的持续性变化,可以调节PWM的占空比。这也能够使外设的功率进行持续性变化,最终控制直流电机转速的快慢。如何调节PWM波形的输出就是重点。相关推荐:STM32中PWM的配置与应用详解。 上图中的ARR是我们给定时器的一个预装载值,CCRx的上下变化是产生P
[单片机]
<font color='red'>PWM</font>控制电机速度的基本原理
STM32CubeMX 下载和安装 详细教程
STM32CubeMX 下载 步骤1:点击官网链接下载 官网下载地址:https://www.st.com/en/development-tools/stm32cubemx.html 步骤2:点击 Get Software 步骤3:选择 Windows 系统,点击 Get latest 步骤4:点击 ACCEPT 步骤5:填写个人信息 步骤6:在刚刚填写的邮箱中,点击下载链接 步骤7:下载完成 步骤8:解压后,就是安装软件 STM32CubeMX 安装 步骤1:双击安装软件 步骤2:点击Next 步骤3:勾选同意,然后点击Next 步骤4:勾选第一个,然后点击Next 步骤5:选择安
[单片机]
<font color='red'>STM32CubeMX</font> 下载和安装 详细教程
stm32单片机中使用GPIO口模拟PWM输出解析
  STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核(ST‘s product portfolio contains a comprehensive range of microcontrollers, from robust, low-cost 8-bit MCUs up to 32-bit ARM-based Cortex®-M0 and M0+, Cortex®-M3, Cortex®-M4 Flash microcontrollers with a great choice of peripherals. ST has also extended this range t
[单片机]
stm32单片机中使用GPIO口模拟<font color='red'>PWM</font>输出解析
STM32之PWM波形输出配置
一. TIMER分类: STM32中一共有11个定时器,其中TIM6、TIM7是基本定时器;TIM2、TIM3、TIM4、TIM5是通用定时器;TIM1和TIM8是高级定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。其中系统嘀嗒定时器是前文中所描述的SysTick。 定时器 计数器分辨率 计数器类型 预分频系数 产生DMA请求 捕获/比较通道 互补输出 TIM1 TIM8 16位 向上,向下,向上/向下 1-65536之间的任意数 可以 4 有 TIM2 TIM3 TIM4 TIM5 16位 向上,向下,向上/向下 1-65536之间的任意数 可以 4 没有 TIM6 T
[单片机]
STM32之<font color='red'>PWM</font>波形输出配置
脉宽调制到底是个什么东西?
昨天在结尾处提到了PAM、PWM和SPWM,说它们经常会在一些说明书或参考书中见到,尤其是在变频器的说明书当中,那么,它们到底是个什么东西哪?今天就说道说道这个事。 它们都属于波形调制,但实现的原理有所不同。在上文中提到,变频设备要拖动负载运动,最核心的要素就是要确保磁通恒定,为一常数,这就要求在电压变化的同时,频率也要同比例变化。 那么,如何来解决这个问题哪?这就像高中数学解一道应用题,PAM就是最常规的思维,根据公式套。 在改变频率的同时,让电压也发生改变,因为有了可控硅技术,让直流母线电压变得可调,有了逆变技术,让频率变得可调,所以,PAM便可得以实现,但这种技术要同时要对整流和逆变进行控制,让控制电路变得复杂冗余
[嵌入式]
脉宽调制到底是个什么东西?
C51模拟PWM
PWM是什么   PWM,即脉冲宽度调制,是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。   PWM原理   随着电子技术的发展,出现了多种PWM技术,其中包括:相电压控制PWM、脉宽PWM法、随机PWM、SPWM法、线电压控制PWM等,而在镍氢电池智能充电器中采用的脉宽PWM法,它是把每一脉冲宽度均相等的脉冲列作为PWM波形,通过改变脉冲列的周期可以调频,改变脉冲的宽度或占空比可以调压,采用适当控制方法即可使电压与频率协调变化。可以通过调整PWM的周期、PWM的占空比而达到控制充电电
[单片机]
STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库
介绍 FwLib_STC8 是一个针对STC8G, STC8H系列MCU的C语言封装库, 适用于基于这些MCU的快速原型验证. 项目地址: Gitee FwLib_STC8 镜像地址: GitHub FwLib_STC8 为避免之前STC12封装库存在的问题, 这个封装库在以下方面进行了改进 兼容SDCC和Keil C51 FwLib_STC12封装库只支持SDCC编译, 并且寄存器命名与官方不同, 使得基于FwLib_STC12的项目代码与其他Keil开发的项目代码无法兼容. 在FwLib_STC8的开发上, 采用了与官方库文件一致的命名, 并且增加了对Keil C51和SDCC的适配. 基于FwLib_STC8的项目,
[单片机]
STC8H开发(一): 在<font color='red'>Keil5</font>中配置和使用FwLib_STC8封装库
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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