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);
}
没看懂你想要实现什么功能。表述清楚。什么功能不能实现? PWM输出占空比0-100%都能调制,但是LPTIM32 PWM通道不能100%调制 本帖最后由 顾博文 于 2022-7-12 08:28 编辑
zcqztw 发表于 2022-7-8 14:38
PWM输出占空比0-100%都能调制,但是LPTIM32 PWM通道不能100%调制
可以实现的,将CCR比较器值大小 超过周期ARR值,就可以了。 例程里写的是 X -1 。你把这个X 填上0 ,可以实现。所以理解先理解下例程,然后再去修改你自己的代码。
页:
[1]