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输出如示波器所示。
能正常输出信号说明设置没问题。
不同脚位输出信号状态不同,这种情况最好检查一下脚位外围电路的影响。
以下波形是在屠龙刀板子上P2.4口测量的,也是使用高速高级PWM输出脉冲,输出PWM频率更高都没有产生衰减:
页:
[1]