?输入捕获可以对输入的信号的上升沿,下降沿或者双边沿进行捕获,常用来测量输入信号的脉宽和频率
?输入捕获模式可以用来测量频率或者电平持续的时间。
?输入捕获测量低电平举例
?实验要求:
利用定时器2的输入捕获功能测量按下KEY6键后低电平持续的时间
__HAL_TIM_DISABLE(&htim2);//关闭定时器
__HAL_TIM_SET_COUNTER(&htim2,0);//设置计数器的值为0
TIM_RESET_CAPTUREPOLARITY(&htim2,TIM_CHANNEL_1);//清除原来的设置
TIM_SET_CAPTUREPOLARITY(&htim2,TIM_CHANNEL_1, TIM_INPUTCHANNELPOLARITY_RISING);//设置为上沿捕获
__HAL_TIM_ENABLE(&htim2);//使能定时器
?PWM(Pulse Width Modulation):脉冲宽度调制
?占空比:就是输出的PWM中,高电平保持的时间 与该PWM的时钟周期的时间之比
?????????它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量,通信,功率控制与变换等许多领域。脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。
?常见应用有:电机控制,DAC输出等
?输出比较就是通过定时器的计数比较控制外部引脚对外输出高低电平
?比较输出有很多种模式,其中PWM模式是输出比较中使用的最多的模式。
?PWM输出模式
?PWM输出极性
1、高电平有效
2、低电平有效
?实验: 利用通用定时器TIM11的通道1,实现PWM呼吸灯效果
HAL_TIM_PWM_Start(&htim13, TIM_CHANNEL_1);
int compare = 0;
uint8_t dir = 0;
while (1)
{
if(!dir){
compare += 10;
if(compare >= 1000){
compare = 1000-1;
dir = 1;
}
}
else{
compare -= 10;
if(compare <= 0){
compare = 0;
dir = 0;
}
}
TIM13_Set_Compare(compare);
HAL_Delay(20);
}