SJ0324 发表于 2023-6-14 09:26:05

STC32G12K128输出PWM波形异常



//========================================================================
//                              PWM初始化
//========================================================================
void PWM_config(void)
{

    HSPWMx_InitDefine PWMx_InitStructure;

    PWM_Duty.PWM3_Duty = PWM3_DUTY_INIT;                     //初始值500

    PWMx_InitStructure.PWM_EnoSelect = ENO3P;                  // 输出通道选择,   ENO1P,ENO1N,ENO2P,ENO2N,ENO3P,ENO3N,ENO4P,ENO4N / ENO5P,ENO6P,ENO7P,ENO8P
    PWMx_InitStructure.PWM_Period = 1000;                      // 周期时间,   0~65535
    PWMx_InitStructure.PWM_DeadTime = 0;                     // 死区发生器设置, 0~255
    PWMx_InitStructure.PWM_MainOutEnable = ENABLE;             // 主输出使能, ENABLE,DISABLE
    PWMx_InitStructure.PWM_CEN_Enable = ENABLE;                // 使能计数器, ENABLE,DISABLE
    HSPWM_Configuration(PWMA, &PWMx_InitStructure, &PWM_Duty); // 初始化PWM通用寄存器,PWMA,PWMB
                                                               // HSPllClkConfig(MCLKSEL_XIRC, PLL_144M, 0);
    HSPllClkConfig(MCLKSEL_XIRC, PLL_144M, 0);               // 系统时钟选择,PLL时钟选择,时钟分频系数

    // PWM3_USE_P14P15(); //默认引脚,输出波形正常
    // PWM3_USE_P24P25(); //切换引脚后,波形上升下降缓慢

    NVIC_PWM_Init(PWMA, DISABLE, Priority_0);
}



程序如上,仅初始化未作其他操作,用的官方的FreeRTOS,使用P1.4输出正常,P2.4输出如示波器所示。



乘风飞扬 发表于 2023-6-15 09:27:36

能正常输出信号说明设置没问题。
不同脚位输出信号状态不同,这种情况最好检查一下脚位外围电路的影响。

以下波形是在屠龙刀板子上P2.4口测量的,也是使用高速高级PWM输出脉冲,输出PWM频率更高都没有产生衰减:


页: [1]
查看完整版本: STC32G12K128输出PWM波形异常