定时器输出比较的翻转功能——STM32CubeMX

 定时器 在STM32CubeMX中的配置:

152ad27aab1248fc9651758a6c4faf9e.png

c71b7d8f5b364b8aa29ddd3854a900fe.png

 一、轮询方式:

HAL_TIM_Base_Start(&htim1);
HAL_TIM_OC_Start(&htim1, TIM_CHANNEL_2);

二、中断方式: 

HAL_TIM_Base_Start_IT(&htim1);
HAL_TIM_OC_Start_IT(&htim1,TIM_CHANNEL_2); 

 输出比较回调函数

void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
{
	static uint8_t pwm_flag = 1;
	if (htim == &htim3)
	{
		if (pwm_flag)
			htim3.Instance->CCR1 += duty_val;
		else
			htim3.Instance->CCR1 += period_val - duty_val;
		pwm_flag = !pwm_flag;
	}
}

设置输出频率和占空比 

uint16_t period_val, duty_val;
void compare_pwm_set(uint32_t freq, uint8_t duty)
{
	period_val = 1000000 / freq;
	duty_val = period_val * duty / 100;
	htim3.Instance->CCR1 = period_val;
}

STM32输出比较模式和PWM模式 比较-CSDN博客

生成两路PWM波相位差90°的方法_pwm相位差如何实现-CSDN博客

PWM移相以及占空比可变_三角波pwm怎么计算移相角度-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值