zcqztw 发表于 2022-7-5 16:31:42

LPTIM32 PWM通道输出不能100%完全输出

void MF_LPTIM32_Channel_Init(void)
{


    FL_GPIO_InitTypeDef    GPIO_InitStruct;


    FL_LPTIM32_OC_InitTypeDef    defaultInitStruct;


    GPIO_InitStruct.pin = FL_GPIO_PIN_8;
    GPIO_InitStruct.mode = FL_GPIO_MODE_DIGITAL;
    GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL;
    GPIO_InitStruct.pull = FL_DISABLE;
    GPIO_InitStruct.remapPin = FL_DISABLE;
    FL_GPIO_Init( GPIOA, &GPIO_InitStruct );
    defaultInitStruct.compareValue = 800;
    defaultInitStruct.OCPolarity = FL_LPTIM32_OC_POLARITY_NORMAL;
    FL_LPTIM32_OC_Init(LPTIM32,FL_LPTIM32_CHANNEL_1,&defaultInitStruct );
}


void MF_LPTIM32_Init(uint32_t psc,uint32_t arr)//psc=FL_LPTIM32_PSC_DIV4,             arr=750
{
    /*IO CONFIG*/
    FL_LPTIM32_InitTypeDef    defaultInitStruct;
    defaultInitStruct.clockSource = FL_RCC_LPTIM32_CLK_SOURCE_APB1CLK;
    defaultInitStruct.prescalerClockSource = FL_LPTIM32_CLK_SOURCE_INTERNAL;
    defaultInitStruct.prescaler = psc;
    defaultInitStruct.autoReload = arr;//
    defaultInitStruct.mode = FL_LPTIM32_OPERATION_MODE_NORMAL;
    defaultInitStruct.onePulseMode = FL_LPTIM32_ONE_PULSE_MODE_CONTINUOUS;
    defaultInitStruct.countEdge = FL_LPTIM32_ETR_COUNT_EDGE_RISING;
    defaultInitStruct.triggerEdge = FL_LPTIM32_ETR_TRIGGER_EDGE_RISING;


    FL_LPTIM32_Init(LPTIM32,&defaultInitStruct );
    MF_LPTIM32_Channel_Init();
    //使能LPTIM32
    FL_LPTIM32_Enable(LPTIM32);
}
void Led1PWMSet(uint32_t compareValue)
{
        FL_LPTIM32_WriteCompareCH1(LPTIM32, compareValue);
}




顾博文 发表于 2022-7-6 08:48:17

没看懂你想要实现什么功能。表述清楚。什么功能不能实现?

zcqztw 发表于 2022-7-8 14:38:57

PWM输出占空比0-100%都能调制,但是LPTIM32 PWM通道不能100%调制

顾博文 发表于 2022-7-11 09:14:33

本帖最后由 顾博文 于 2022-7-12 08:28 编辑

zcqztw 发表于 2022-7-8 14:38
PWM输出占空比0-100%都能调制,但是LPTIM32 PWM通道不能100%调制
可以实现的,将CCR比较器值大小 超过周期ARR值,就可以了。 例程里写的是 X -1 。你把这个X 填上0 ,可以实现。所以理解先理解下例程,然后再去修改你自己的代码。
页: [1]
查看完整版本: LPTIM32 PWM通道输出不能100%完全输出