9、STM32的PWM的原理与使用(内附代码)

您所在的位置:网站首页 pwm调光技术的原理及应用实验报告 9、STM32的PWM的原理与使用(内附代码)

9、STM32的PWM的原理与使用(内附代码)

2024-07-09 19:30:36| 来源: 网络整理| 查看: 265

1、PWM是什么?

    是脉冲宽度调制,简称脉宽调制。利用微处理器数字输出对模拟电路进行控制的一种有效的技术,就是对脉冲宽度的控制。

    这里说的脉冲,就是我们产生的方波。方波就是N个这样的周期连续的产生。

一个周期内高电平持续的时间就是脉冲宽度(脉宽),而PWM(脉冲宽度调制)就是控制一个周期内的高电平的持续时间。

2、简单的PWM的原理示意图

CNT:是当前值寄存器,计数寄存器。

ARR:是自动重载寄存器(初始化设定)。

CCRx:比较值寄存器(TIM_SetCompare1()设定修改占空比)。

 

假定定时器工作在向上计数PWM模式下:

当CNT=CCRx时,引脚输出1。

当CNT的值小于CCRx的时候,IO输出低电平(0),

当CNT值大于或等于CCRx的时候,IO输出高电平(1),

当CNT的值达到ARR的时候,就会重新归零,然后重新向上计数,依次循环。

改变CCRx的值就可以改变PWM的输出的占空比。改变ARR的值,就可以改变PWM的输出的频率,这就是PWM的输出原理。

3、寄存器工作流程:

PWM 模式

脉冲宽度调制模式可以生成一个信号,该信号频率由 TIMx_ARR 寄存器值决定,其占空比由 TIMx_CCRx 寄存器值决定。

通过向 TIMx_CCMRx 寄存器中的 OCxM 位写入 110(PWM 模式 1)或 111(PWM 模式 2) ,可以独立选择各通道 (每个 OCx 输出对应一个 PWM)的 PWM 模式。必须通过将TIMx_CCMRx 寄存器中的 OCxPE 位置 1 使能相应预装载寄存器,最后通过将 TIMx_CR1寄存器中的 ARPE 位置 1 使能自动重载预装载寄存器(在递增计数或中心对齐模式下)。

由于只有在发生更新事件时预装载寄存器才会传送到影子寄存器,因此启动计数器之前,必须通过将 TIMx_EGR 寄存器中的 UG 位置 1 来初始化所有寄存器。OCx 极性可使用 TIMx_CCER 寄存器的 CCxP 位来编程。既可以设为高电平有效,也可以设为低电平有效。 OCx 输出通过将 TIMx_CCER 寄存器中的 CCxE 位置 1 来使能。有关详细信息,请参见 TIMx_CCERx 寄存器说明在 PWM 模式(1 或 2)下, TIMx_CNT 总是与 TIMx_CCRx 进行比较,以确定是TIMx_CNT =< TIMx_CCRx。

因为计数器采用递增方式计数,所以定时器能够在边沿对齐模式下生成 PWM。

4、PWM 边沿对齐模式

以下以 PWM 模式 1 为例。只要 TIMx_CNT < TIMx_CCRx, PWM 参考信号 OCxREF 便为高电平,否则为低电平。如果 TIMx_CCRx 中的比较值大于自动重载值(TIMx_ARR 中),则 OCxREF 保持为“1”。如果比较值为 0, 则 OCxRef 保持为“0”。 图 183 举例介绍边沿对齐模式的一些 PWM 波形 (TIMx_ARR=8)。

5、PWM步骤-灯光亮度控制:

       查看LED的原理图:

//①根据原理图找到4个引脚:        PF9可以使用TIM14_CH1,表示可以使用定时器14的通道1产生PWM输出。 TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct; // 定义的TIM属性结构体变量       GPIO_InitTypeDef GPIO_InitStruct; // 定义GPIO类型变量        TIM_OCInitTypeDef TIM_OCInitStruct; // 定义复用功能的变量              ②// 1.初始化时钟:TIM14 和 PF9        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);        /* TIM3 clock enable */   RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14, ENABLE);             // 2.配GPIO引脚为复用功能        /* GPIOC Configuration: TIM14 CH1 (PF9) */        GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9; // 选择引脚为PF9        GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF; // 设置为复用功能        GPIO_InitStruct.GPIO_Speed = GPIO_High_Speed; // 设置输出速度为100MHz        GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; // 设置为推挽输出        GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; // 设置为上拉输出        GPIO_Init(GPIOC, &GPIO_InitStruct);  // 安装参数        // 3.将TIM和引脚的复用功能连接:TIM14和PF9连接起来        GPIO_PinAFConfig(GPIOF, GPIO_PinSource9, GPIO_AF_TIM14);        // 4.配置TIM定时器的参数        TIM_TimeBaseInitStruct.TIM_Period = 100-1; // 设置重装载值 ARR(控制频率)        TIM_TimeBaseInitStruct.TIM_Prescaler = 8400-1; // 设置预分频系数:周期(次) 100Hz == 100us        TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1; // 设置再分频值:TIM_CKD_DIV1就是不分频        TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up; // 设置计数模式        TIM_TimeBaseInit(TIM14, &TIM_TimeBaseInitStruct);               // 5.配置复用功能:PWM        TIM_OCInitStruct.TIM_OCMode = TIM_OCMode_PWM1; // 配置为PWM模式1        TIM_OCInitStruct.TIM_OutputState = TIM_OutputState_Enable; // 开启输出使能        //TIM_OCInitStruct.TIM_Pulse = CCR1_Val; // 初始化配置比较值寄存器        TIM_OCInitStruct.TIM_OCPolarity = TIM_OCPolarity_High; // 配置为高电平有效        // 6.TIM14通道1初始化        TIM_OC1Init(TIM14, &TIM_OCInitStruct); // TIM14通道1初始化        // 7.设置自动重载比较值CCR1初值,不断产生PWM脉冲        TIM_OC1PreloadConfig(TIM14, TIM_OCPreload_Enable);        // 8.设置自动重装载值(ARR),不断产生PWM脉冲        TIM_ARRPreloadConfig(TIM14, ENABLE);        /* 9.使能定时器14 */        TIM_Cmd(TIM14, ENABLE);        // 10.使能TIM1PWM输出(高级定时器)        //TIM_CtrlPWMOutputs(TIM1, ENABLE)

设置比较值函数

void TIM_SetCompareX(TIM_TypeDef* TIMx, uint16_t Comparex);

 



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭