冷凝 发表于 2026-6-15 15:01:21

PWM翻转模式下,输出不变怎么回事儿?


void        PWM_config(void)
{
        PWMx_InitDefine                PWMx_InitStructure;
       
        PWMx_InitStructure.PWM_Mode    =        CCMRn_ROLLOVER;        //模式,                CCMRn_FREEZE,CCMRn_MATCH_VALID,CCMRn_MATCH_INVALID,CCMRn_ROLLOVER,CCMRn_FORCE_INVALID,CCMRn_FORCE_VALID,CCMRn_PWM_MODE1,CCMRn_PWM_MODE2
        PWMx_InitStructure.PWM_Duty    = PWMB_Duty.PWM5_Duty;        //PWM占空比时间, 0~Period
        PWMx_InitStructure.PWM_EnoSelect   = ENO5P;                                //输出通道选择,        ENO1P,ENO1N,ENO2P,ENO2N,ENO3P,ENO3N,ENO4P,ENO4N / ENO5P,ENO6P,ENO7P,ENO8P
        PWM_Configuration(PWM5, &PWMx_InitStructure);                        //初始化PWM,PWMA,PWMB

        PWMx_InitStructure.PWM_Mode    =        CCMRn_ROLLOVER;        //模式,                CCMRn_FREEZE,CCMRn_MATCH_VALID,CCMRn_MATCH_INVALID,CCMRn_ROLLOVER,CCMRn_FORCE_INVALID,CCMRn_FORCE_VALID,CCMRn_PWM_MODE1,CCMRn_PWM_MODE2
        PWMx_InitStructure.PWM_Duty    = PWMB_Duty.PWM6_Duty;        //PWM占空比时间, 0~Period
        PWMx_InitStructure.PWM_EnoSelect   = ENO6P;                                //输出通道选择,        ENO1P,ENO1N,ENO2P,ENO2N,ENO3P,ENO3N,ENO4P,ENO4N / ENO5P,ENO6P,ENO7P,ENO8P
        PWM_Configuration(PWM6, &PWMx_InitStructure);                        //初始化PWM,PWMA,PWMB

        PWMx_InitStructure.PWM_Mode    =        CCMRn_ROLLOVER;        //模式,                CCMRn_FREEZE,CCMRn_MATCH_VALID,CCMRn_MATCH_INVALID,CCMRn_ROLLOVER,CCMRn_FORCE_INVALID,CCMRn_FORCE_VALID,CCMRn_PWM_MODE1,CCMRn_PWM_MODE2
        PWMx_InitStructure.PWM_Duty    = PWMB_Duty.PWM7_Duty;        //PWM占空比时间, 0~Period
        PWMx_InitStructure.PWM_EnoSelect   = ENO7P;                                //输出通道选择,        ENO1P,ENO1N,ENO2P,ENO2N,ENO3P,ENO3N,ENO4P,ENO4N / ENO5P,ENO6P,ENO7P,ENO8P
        PWM_Configuration(PWM7, &PWMx_InitStructure);                        //初始化PWM,PWMA,PWMB

        PWMx_InitStructure.PWM_Mode    =        CCMRn_PWM_MODE1;        //模式,                CCMRn_FREEZE,CCMRn_MATCH_VALID,CCMRn_MATCH_INVALID,CCMRn_ROLLOVER,CCMRn_FORCE_INVALID,CCMRn_FORCE_VALID,CCMRn_PWM_MODE1,CCMRn_PWM_MODE2
        PWMx_InitStructure.PWM_Duty    = PWMB_Duty.PWM8_Duty;        //PWM占空比时间, 0~Period
        PWMx_InitStructure.PWM_EnoSelect   = ENO8P;                                //输出通道选择,        ENO1P,ENO1N,ENO2P,ENO2N,ENO3P,ENO3N,ENO4P,ENO4N / ENO5P,ENO6P,ENO7P,ENO8P
        PWM_Configuration(PWM8, &PWMx_InitStructure);                        //初始化PWM,PWMA,PWMB

        PWMx_InitStructure.PWM_Period   = 2400;                                        //周期时间,   0~65535
        PWMx_InitStructure.PWM_DeadTime = 0;                                        //死区发生器设置, 0~255
        PWMx_InitStructure.PWM_MainOutEnable= ENABLE;                        //主输出使能, ENABLE,DISABLE
        PWMx_InitStructure.PWM_CEN_Enable   = ENABLE;                        //使能计数器, ENABLE,DISABLE
        PWM_Configuration(PWMB, &PWMx_InitStructure);                        //初始化PWM通用寄存器,PWMA,PWMB

        NVIC_PWM_Init(PWMB,DISABLE,Priority_0);

//        PWM5_SW(PWM5_SW_P20);                                        //PWM5_SW_P20,PWM5_SW_P17,PWM5_SW_P00,PWM5_SW_P74
        PWM6_SW(PWM6_SW_P01);                                        //PWM6_SW_P21,PWM6_SW_P54,PWM6_SW_P01,PWM6_SW_P75
        PWM7_SW(PWM7_SW_P02);                                        //PWM7_SW_P22,PWM7_SW_P33,PWM7_SW_P02,PWM7_SW_P76
        PWM8_SW(PWM8_SW_P03);                                        //PWM8_SW_P23,PWM8_SW_P34,PWM8_SW_P03,PWM8_SW_P77
       
PWMB_OC7_RelosdDisable();       
//PWMB_CC8P_LowValid();       
PWMB_CC7P_HighValid();       
}


lcwswust 发表于 2026-6-15 15:34:45

试试别的模式

神农鼎 发表于 2026-6-15 17:26:54










页: [1]
查看完整版本: PWM翻转模式下,输出不变怎么回事儿?