hsl129 发表于 2023-3-21 17:26:37

ATIM通道4输出PWM的设置

void MF_ATIM_TimerBase_Init(void)
{
    FL_ATIM_InitTypeDef    TimerBase_InitStruct;

    TimerBase_InitStruct.clockSource = FL_RCC_ATIM_CLK_SOURCE_APB2CLK;
    TimerBase_InitStruct.prescaler = 7;
    TimerBase_InitStruct.counterMode = FL_ATIM_COUNTER_DIR_UP;
    TimerBase_InitStruct.autoReload = 999;
    TimerBase_InitStruct.autoReloadState = FL_ENABLE;
    TimerBase_InitStruct.clockDivision = FL_ATIM_CLK_DIVISION_DIV1;
    TimerBase_InitStruct.repetitionCounter = 0;

    FL_ATIM_Init(ATIM, &TimerBase_InitStruct);   
}

/**
* @briefATIM_FL_ATIM_CHANNEL_4_Channel4 Initialization function
* @paramvoid
* @retval None
*/
void MF_ATIM_FL_ATIM_CHANNEL_4_Channel4_Init(void)
{
    FL_GPIO_InitTypeDef    GPIO_InitStruct;

    FL_ATIM_OC_InitTypeDef    ATIM_InitStruct;

    /* PA9 ATIM_CH4 */
    GPIO_InitStruct.pin = FL_GPIO_PIN_9;
    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);

    ATIM_InitStruct.OCMode = FL_ATIM_OC_MODE_PWM1;
    ATIM_InitStruct.OCState = FL_ENABLE;
    ATIM_InitStruct.OCNState = FL_DISABLE;
    ATIM_InitStruct.OCPolarity = FL_ATIM_OC_POLARITY_NORMAL;
    ATIM_InitStruct.OCNPolarity = FL_ATIM_OC_POLARITY_NORMAL;
    ATIM_InitStruct.OCFastMode = FL_DISABLE;
    ATIM_InitStruct.OCPreload = FL_DISABLE;
    ATIM_InitStruct.compareValue = 500;
    ATIM_InitStruct.OCIdleState = FL_ATIM_OC_IDLE_STATE_LOW;
    ATIM_InitStruct.OCETRFStatus = FL_DISABLE;
    ATIM_InitStruct.OCNIdleState = FL_ATIM_OCN_IDLE_STATE_LOW;

    FL_ATIM_OC_Init(ATIM, FL_ATIM_CHANNEL_4, &ATIM_InitStruct);   
}
这是通过魔方生成的ATIM通道4输出PWM,为什么没有信号输出,不知道哪里不对,通道1、2、3都是正常的

顾博文 发表于 2023-3-29 10:34:53

引脚配置错误
/* PA9 ATIM_CH4 */
    GPIO_InitStruct.pin = FL_GPIO_PIN_9;
    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);
按照手册
    pa9 ch4 数字功能 应该是 2,需要改成FL_ENABLE    GPIO_InitStruct.remapPin = FL_ENABLE;

页: [1]
查看完整版本: ATIM通道4输出PWM的设置