STM32 CubeMX学习:4. PWM控制LED亮度 | 您所在的位置:网站首页 › 脉冲led › STM32 CubeMX学习:4. PWM控制LED亮度 |
STM32 CubeMX学习:4. PWM控制LED亮度
系列文章目录
前期的准备点亮 LED闪烁 LED定时器闪烁LEDPWM控制LED亮度常见的PWM设备按键的外部中断ADC模数转换串口收发串口打印遥控器数据未完待续…
文章目录
STM32 CubeMX学习:4. PWM控制LED亮度1 基础知识1.1 PWM基本知识1.2 PWM工作原理
2. 程序的学习2.1 PWM在CubeMX的配置2.2 代码讲解
总结
1 基础知识
1.1 PWM基本知识
脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。 一个周期内高电平的持续时间占总周期的比例成为占空比,通过修改占空比,可以改变输出的等效模拟电压。例如输出占空比为50%,频率为10Hz的脉冲,高电平为3.3V.则其输出的模拟效果相当于输出一个1.65V的高电平。此外PWM输出的频率也会影响最终的PWM输出效果,PWM输出的频率越高,最终输出的“连续性”越好,越接近模拟信号的效果,频率低则会增强离散性,最终的输出效果会有比较强的“突变”感。 脉冲调制有两个重要的参数,第一个就是输出频率,频率越高,则模拟的效果越好。第二个就是占空比。占空比就是改变输出模拟效果的电压大小。占空比越大则模拟出的电压越大。 1.2 PWM工作原理为了实现PWM功能,需要使用定时器中的比较寄存器(TIMx_CCRx)。 当定时器以PWM模式工作时,会自动将TIMx_CCRx的值与TIMx_CNT(计数寄存器)中的值做比较,当TIMx_CNT中的值小于TIMx_CCRx的值时,PWM输出引脚输出高电平,大于时则输出低电平。 因此知道了PWM信号的周期和占空比可以通过设置比较寄存器TIMx_CCRx和定时器重载寄存器TIMx_ARR来控制。PWM的占空比可以通过下图公式计算: 如图所示 1、在CubeMX中设置定时器14的通道1为PWM输出。可以注意到这个通道对应的引脚正是之前的实验中使用的LED引脚。 2、现在我们对定时器14进行相关的配置,如图所示 1、HAL_TIM_PWM_Start函数介绍 为了使定时器开始PWM输出,除了要通过HAL_TIM_Base_Start使定时器开始工作,还需要在初始化时调用HAL库提供的PWM初始化函数HAL_TIM_PWM_Start。 HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel)这个函数的返回值为HAL_StatusTypeDef,HAL库定义的几种状态,如果成功使定时器开始工作,则返回HAL_OK; 该函数的作用在于使对应定时器的对应通道开始PWM输出; 该函数有两个参数, (1)*htim 定时器的句柄指针,如定时器1就输入&htim1,定时器2就输入&htim2 (2)Channel 定时器PWM输出的通道,比如通道1为TIM_CHANNEL1 代码我已经放到了我的GitHub仓库,如有需要可以下载使用: CubeMX学习 总结 这篇博客学习的PWM输出功能可以用于舵机和电机控制,是非常常用的控制信号,需要熟练掌握其原理。 下一次我们要了解其他几个需要pwm的外设,大家可要好好复习消化一下哟。 今天实际的操作比较简单,但是原理大家还是要仔细研究一下啦。 |
CopyRight 2018-2019 实验室设备网 版权所有 |