蓝桥杯STM32自学记录_定时器与pwm

本文介绍了在STM32平台上使用PWM输出的配置方法,包括Cubemx的配置和C代码实现。同时,详细展示了如何通过TIM3进行频率和占空比的测量,以及中断初始化的相关函数。
摘要由CSDN通过智能技术生成

 一、PWM输出

实验步骤

1.配置cubemx

2.PWM.c

#include "tim.h"
#include "PWM.h"

void pwm_Init(void)
{
	HAL_TIM_PWM_Start(&htim16,TIM_CHANNEL_1);
	HAL_TIM_PWM_Start(&htim16,TIM_CHANNEL_1);
}

void pwm_change(int pwm)
{
__HAL_TIM_SetCompare(&htim16,TIM_CHANNEL_1,pwm);
}

3.PWM.h

#ifndef _PWM_H
#define _PWM_H

void pwm_Init(void);
void pwm_change(int pwm);

#endif

 二、输入捕获(频率和占空比的测量)

1.原理图

 

TIM3同配置

 IT.c补充函数

int cnt=0;
int cnt1=0;
int frq=0;
int frq1=0;
void HAL_TIM_CaptureCallback(TIM_HandleTypeDef *htim)
{
	if(htim->Instance==TIM2)
	{
		cnt=HAL_TIM_ReadCapturedValue(htim,TIM_CHANNEL_1);
		__HAL_TIM_SetCounter(htim,0);
		frq=(80000000/80)/cnt;
		HAL_TIM_IC_Start(htim,TIM_CHANNEL_1);
	}
	if(htim->Instance==TIM3)
	{
		cnt1=HAL_TIM_ReadCapturedValue(htim,TIM_CHANNEL_1);
		__HAL_TIM_SetCounter(htim,0);
		frq1=(80000000/80)/cnt1;
		HAL_TIM_IC_Start(htim,TIM_CHANNEL_1);
	}
}
/*frqºÍfrq1ÊDz¶»ñµ½µÄƵÂÊÖµ£¬Ö÷º¯ÊýÒªÓüǵüÓexternµ÷ÓÃ*/

void interrupt_IN_Init(void)
{
	HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1);
	HAL_TIM_IC_Start_IT(&htim3,TIM_CHANNEL_1);
}

 IT.h补充

void HAL_TIM_CaptureCallback(TIM_HandleTypeDef *htim);
void interrupt_IN_Init(void);

总结

简单掠过一下pwm和频率检测  占空比待定 没时间完善了只能记录一下,过后有时间来完善

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值