STM32定时器之输入捕获实验和PWM控制呼吸灯实验

输入捕获

输入捕获功能框图

输入捕获可以对输入的信号的上升沿,下降沿或者双边沿进行捕获,常用来测量输入信号的脉宽和频率

输入捕获应用

输入捕获模式可以用来测量频率或者电平持续的时间。

输入捕获测电平持续的时间

输入捕获测量低电平举例

输入捕获实验

实验要求:

利用定时器2的输入捕获功能测量按下KEY6键后低电平持续的时间

CubeMX配置

关键功能函数说明

__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控制呼吸灯实验

PWM概念

PWM(Pulse Width Modulation):脉冲宽度调制

占空比:就是输出的PWM中,高电平保持的时间 与该PWM的时钟周期的时间之比

PWM应用

        它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量,通信,功率控制与变换等许多领域。脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。

常见应用有:电机控制,DAC输出等

输出比较功能框图

输出比较就是通过定时器的计数比较控制外部引脚对外输出高低电平

比较输出有很多种模式,其中PWM模式是输出比较中使用的最多的模式。

STM32-PWM模式

PWM输出模式

PWM输出极性

1、高电平有效

2、低电平有效

STM32-PWM呼吸灯实验

实验: 利用通用定时器TIM11的通道1,实现PWM呼吸灯效果

Cubemx配置

打开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);
        }    

  • 20
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值