本帖最后由 huiyong828 于 2024-5-1 22:36 编辑
硬件实现四路PWM,应用于开关电源全桥电路
42837
现在只是按照要求初始化PWM,能实现PWM1 PWM4 与PWM2 PWM3相位差90度。
42838
代码如下:
- /******************** PWM15配置 ********************/
- void PWM15_config(void)
- {
- PWM15_InitTypeDef PWM15_InitStructure;
- // DT_Value = 2; //占空比
- // CY_Value = 225; //周期
- temp1 = (u16)(CY_Value * DT_Value /100); //计算出导通时间
- temp2 = (u16)(CY_Value/2 + temp1); //低电平输出位置
- temp3 = (u16)(CY_Value/2); //高电平输出位置
- PWM15_InitStructure.PWM_Enable = ENABLE; //PWM使能, ENABLE, DISABLE
- PWM15_InitStructure.PWM_Period = CY_Value; //PWM周期, 0~0x7fff
- PWM15_InitStructure.PWM_Clock_Sel = PWM_CLK_SYS; //时钟源选择, PWM_CLK_SYS, PWM_CLK_TM2
- PWM15_InitStructure.PWM_Clock_PS = 0; //系统时钟分频参数(PS+1分频), 0~15
- PWM15_InitStructure.PWM_CInt = ENABLE; //计数器归零中断使能, ENABLE, DISABLE
- PWM15_InitStructure.PWM_Counter = ENABLE; //计数器使能, ENABLE, DISABLE
- PWM15_Init(&PWM15_InitStructure);
-
- PWM15Duty(PWM15_1,temp1, 0); //PWM_ID, 输出低电平位置, 输出高电平位置
- PWM15Duty(PWM15_2,temp2,temp3
复制代码