TIM_SetCompare2()

本文深入解析了TIM_SetCompare2函数的功能与使用,该函数用于设置TIMx的通道2捕获/比较寄存器值。文章详细介绍了TIMx参数的有效范围,以及Compare2如何决定PWM波的占空比。同时,阐述了自动重载值arr在确定PWM周期与频率中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于**void TIM_SetCompare2(TIM_TypeDef TIMx,uint16_t Compare2)***的理解

void TIM_SetCompare2(TIM_TypeDef* TIMx,uint16_t Compare2)

{
/*Check the parameters */
assert_param(IS_TIM_LIST6_PERIPH(TIMx));

/*Set the Capture Compare2 Register value */
TIMx->CCR2 = Compare2;
}

1)TIM_SetCompare2这个函数名中的数字2代表的是TIMx的通道2;

2)TIMx中的x可以取1、2、3、4、5、6、8、9、12、15;

(如果是TIM_SetCompare1即通道1,TIMx的x可以取1-17除了6、7;
通道3,x可以取1\2\3\4\5\8;通道4,x可以取1\2\3\4\5\8)

3)Compare2给了捕获/比较寄存器一个捕获值;

4)TIMx->CCR2,捕获/比较寄存器一共有四个(TIMx->CCR1-4),用到TIMx的通道二,与TIM_SetCompare2对应;

5)如何输出PWM波

TIM3_PWM_Init(u16 arr,u16 psc)中arr:自动重载值
在这里插入图片描述

周期、频率由arr决定;占空比由Compare2决定。
欢迎关注公众号,干货满满。
欢迎关注

以下程序为 实现PWM的主要程序。 //通用定时器1中断初始化,这里时钟若选择72M void TIM3_Int_Init(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); TIM_TimeBaseStructure.TIM_Period = arr; TIM_TimeBaseStructure.TIM_Prescaler =psc; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); TIM_Cmd(TIM3, ENABLE); } //TIM3的PWM输出初始化 void TIM3_PWM_Init(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; TIM_TimeBaseStructure.TIM_Period = arr; TIM_TimeBaseStructure.TIM_Prescaler =psc; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC2Init(TIM3, &TIM_OCInitStructure); TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); TIM_Cmd(TIM3, ENABLE); } 请说明: (1) 若设置PWM频率为10K,则TIM3_PWM_Init( ) 如何设置形参? (2)若利用PA8,PA9,PA10 输出频率为10K,占空比分别为20%,35%,50%的脉冲信号(利用定时器1),请参考 函数TIM3_PWM_Init(u16 arr,u16 psc)和 调用函数TIM_SetCompare1( ),TIM_SetCompare2( ),TIM_SetCompare3( )来完成编程。
06-12
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值