基于stm32单片机的可调节pwm输出

这篇博客详细介绍了如何使用STM32单片机进行PWM输出配置,包括通过按键切换PWM频率和占空比。作者指出,配置过程中避免了一些不必要的函数调用以提高效率,并分享了学习PWM输出的心得体会。

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

目标:

1.通过按键1切换pwm频率的切换。

2.通过按键2实现pwm占空比的切换。

3.备注:不附加硬件原理图,但是通过描述简单介绍引脚的连接。

硬件原理描述:

1.通过3个IO口实现16个按键的检测。
2.按键1,按键2不多做描述,通过键盘扫描程序循环检测按键
3.通过TIM2 CHI通道PA0输出波形。

pwm输出配置功能函数:

#include "pwm.h"
static  u16 Tim_Prescaler=35;       //配置TIM默认时钟分频
static  u16 TIMCompare1=200;        //配置TIM默认脉冲比较值
void GPIO_cfg() //配置pwm输出相关引脚  
{  
    GPIO_InitTypeDef GPIO_InitStructure;  
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);   //使能GPIOA的时钟 
    //RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);    //复用时钟不需要失能
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;  //选择引脚0                                                           
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //输出频率最大50MHz                                                 
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;       //复用推挽输出   
    GPIO_Init(GPIOA,&GPIO_InitStructure);   
} 
void TIMER_cfg(void)//配置TIM2   
{  
    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;  
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);   //开启TIM2的时钟   
    //设置预分频系数  
    TIM_TimeBaseStructure.TIM_Prescaler =Tim_Prescaler;  
    //设置计数自动重装值大小  
    TIM_TimeBaseStructure.TIM_Period = 1000;    
    //设置计数器模式为向上 
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;    
    //设置时钟分割---不分割  
    TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;  
    //将配置应用
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值