void PWMInit(void) { SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM); SysCtlPWMClockSet(SYSCTL_PWMDIV_1); // PWM时钟源1分频 80MHz PWMGenDisable(PWM_BASE,PWM_GEN_1); PWMGenDisable(PWM_BASE,PWM_GEN_2); //PWM2 PF2 PWM3 PF3 GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_2); // 硬件功能,2MA,弱上拉 GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_3); GPIOPinConfigure(GPIO_PF2_PWM2); GPIOPinConfigure(GPIO_PF3_PWM3); //PWM4 PE0 PWM5 PE1 GPIOPinTypePWM(GPIO_PORTE_BASE, GPIO_PIN_0); // 硬件功能,2MA,弱上拉 GPIOPinTypePWM(GPIO_PORTE_BASE, GPIO_PIN_1); GPIOPinConfigure(GPIO_PE0_PWM4); GPIOPinConfigure(GPIO_PE1_PWM5); /**************************************************************************************************** PWMGen1 *****************************************************************************************************/ /*配置PWM*/ PWMGenConfigure(PWM_BASE,PWM_GEN_1,PWM_GEN_MODE_SYNC |PWM_GEN_MODE_DOWN |PWM_GEN_MODE_GEN_SYNC_GLOBAL |PWM_GEN_MODE_FAULT_UNLATCHED |PWM_GEN_MODE_FAULT_LEGACY |PWM_GEN_MODE_FAULT_MINPER); HWREG(PWM_BASE+PWM_O_1_GENA)=0X008C; HWREG(PWM_BASE+PWM_O_1_GENB)=0X08C0; /*开启输出 PWMGen1*/ PWMOutputState(PWM_BASE,PWM_OUT_2_BIT,true); PWMOutputState(PWM_BASE,PWM_OUT_3_BIT,true); PWMGenEnable(PWM_BASE,PWM_GEN_1); /**************************************************************************************************** PWMGen2 *****************************************************************************************************/ /*配置PWM*/ PWMGenConfigure(PWM_BASE,PWM_GEN_2,PWM_GEN_MODE_SYNC |PWM_GEN_MODE_DOWN |PWM_GEN_MODE_GEN_SYNC_GLOBAL |PWM_GEN_MODE_FAULT_UNLATCHED |PWM_GEN_MODE_FAULT_LEGACY |PWM_GEN_MODE_FAULT_MINPER); HWREG(PWM_BASE+PWM_O_2_GENA)=0X08C0; HWREG(PWM_BASE+PWM_O_2_GENB)=0X0C02; /*开启输出 PWMGen2*/ PWMOutputState(PWM_BASE,PWM_OUT_4_BIT,true); PWMOutputState(PWM_BASE,PWM_OUT_5_BIT,true); PWMGenEnable(PWM_BASE,PWM_GEN_2); HWREG(PWM_BASE + PWM_O_1_LOAD)=CMPA_T_hht1; HWREG(PWM_BASE + PWM_O_1_CMPA)=CMPA_T_hht1*3/4; HWREG(PWM_BASE + PWM_O_1_CMPB)=CMPA_T_hht1*2/4; HWREG(PWM_BASE + PWM_O_2_LOAD)=CMPA_T_hht1; HWREG(PWM_BASE + PWM_O_2_CMPA)=CMPA_T_hht1*2/4; HWREG(PWM_BASE + PWM_O_2_CMPB)=CMPA_T_hht1*1/4; PWMSyncUpdate(PWM_BASE,PWM_GEN_1_BIT|PWM_GEN_2_BIT); PWMSyncTimeBase(PWM_BASE,PWM_GEN_1_BIT|PWM_GEN_2_BIT); }