地瓜patch 发表于 2025-3-5 22:22

【STM32L562 DK试用】点灯,呼吸效果没有做到传说中那么好(四)

拿到开发版,不点个灯便称英雄也枉然。
开个定时器,变个频。

友情提示,Tim1的channal1对应的是下图中的IO

代码如下
在main()中声明以后调用

while (1)
{
               
       
                if(PULSE1_ADD == 1)
                {
                        PULSE1_V++;
                        if(PULSE1_V >= 900 )
                        {
                                        PULSE1_SUB = 1;
                                        PULSE1_ADD = 0;
                        }
                       
                }
                else if(PULSE1_SUB == 1)
                {
                                PULSE1_V--;
                                if(PULSE1_V <= 100 )
                                {
                                                PULSE1_SUB = 0;
                                                PULSE1_ADD = 1;
                                }
                                HAL_Delay(20);       
                }
                HAL_Delay(20);       
                TIM1_Config(PULSE1_V);
                HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_1);
}


定时器配置,以下配置为定时器tim1的时钟频率为4MHz,
输出PWM频率为1kHz,占空比在主函数中先递增再递减。

void TIM1_Config(uint8_t PULSE1_V)
{
TIM_MasterConfigTypeDef sMasterConfig = {0};
TIM_OC_InitTypeDef sConfigOC = {0};
htim4.Instance = TIM4;
htim4.Init.Prescaler = 1;//3
htim4.Init.CounterMode = TIM_COUNTERMODE_UP;
htim4.Init.Period = 1000;//39   
htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_PWM_Init(&htim4) != HAL_OK)
{
    Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig) != HAL_OK)
{
    Error_Handler();
}
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = PULSE1_V;//20   50%
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
{
    Error_Handler();
}
}

https://www.bilibili.com/video/BV1V39ZYFE7o/

Wxy8030 发表于 2025-3-6 06:56

这效果可以了
页: [1]
查看完整版本: 【STM32L562 DK试用】点灯,呼吸效果没有做到传说中那么好(四)