STM32怎么输出六路频率和个数可控的PWM波形不要频繁中断的设置,因为还有其他程序要处理

STM32怎么输出六路频率和个数可控的PWM波形不要频繁中断的设置,因为还有其他程序要处理,第1张

STM32的定时器(基本定时器除外)自带编码器功能和PWM输出功能,一个定时器最多输出4路PWM,你用2个定时器就可以了。一般的电机控制多采用ADC采样摇杆电位器值为输入,用PWM做输出,不需要中断 *** 作。当然方法有很多种,要做的话需要你具体的情况去分析学习。

将stm32的pwm放大的方法是控制输出电平的大小。stm32的IO输出的pwm幅度是固定的,一般就是VCC电压,是不能直接改变pwm的幅度大小的,要改变pwm的幅度大小,一般是要通过电平转换芯片,然后控制输出电平的大小,实现一个pwm的幅度改变。

最简单的方法,检测到按键按下之后,初始化PWM的定时器,输出PWM;检测到按键松开后,反初始化PWM定时器,设置PWM的IO输出0

void PwmStart(void)

{

    TIM3_GPIO_Config();

    TIM3_Mode_Config(200);  //占空比04 设置了TIM3_Mode_Config(int i)

    /开启TIM3/

    TIM_Cmd(TIM3, ENABLE);

}

void PwmStop(void)

{

    GPIO_InitTypeDef  GPIO_InitStructure;

    TIM_Cmd(TIM3,DISABLE);

    TIM_DeInit(TIM3);

    //GPIO配置,把PWM的IO配置为输出,然后输出0

    GPIO_InitStructureGPIO_Pin = PWM_PIN;

    GPIO_InitStructureGPIO_Mode = GPIO_Mode_Out_PP;

    GPIO_InitStructureGPIO_Speed = GPIO_Speed_50MHz;

    GPIO_Init(GPIOx, &GPIO_InitStructure);  

    GPIO_ResetBit(GPIOx, PWM_PIN);

}

int main(void)

{

    int nKeyState = -1;

    

    

    while(1)

    {

        KEY=ReadKeyDown();

        if (nKeyState != KEY)

        {

            nKeyState  = KEY;

            if(KEY==1)

            {

                PwmStart();

            }

            else

            {

                PwmStop(); 

            }

        }

    }

}

以上就是关于STM32怎么输出六路频率和个数可控的PWM波形不要频繁中断的设置,因为还有其他程序要处理全部的内容,包括:STM32怎么输出六路频率和个数可控的PWM波形不要频繁中断的设置,因为还有其他程序要处理、如何将stm32的pwm放大、STM32如何重置PWM端口等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9381936.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存