Thread 中讨论的其他器件:EK-TM4C123GXL
标题说明了一切。 我使用的是 EK-TM4C123GXL launchpad。
#include #include #include #include #include #include #include #include int main (void){ SysCtlClockSet (SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHz); SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB); while (!SysCtlPeripheralReady (SYSCTL_Periph_GPIOB)); GPIOPinConfigure (GPIO_PB4_M0PWM2); GPIOPinConfigure (GPIO_PB7_M0PWM1); GPIOPinConfigure (GPIO_PB6_M0PWM0); GPIOPinTypePWM (GPIO_PORTB_BASE、GPIO_PIN_4); GPIOPinTypePWM (GPIO_PORTB_BASE、GPIO_PIN_6); GPIOPinTypePWM (GPIO_PORTB_BASE、GPIO_PIN_7); SysCtlPeripheralEnable (SYSCTL_Periph_PWM0); while (!SysCtlPeripheralReady (SYSCTL_Periph_PWM0)); PWMGenConfigure (PWM0_BASE、PWM_GEN_0、PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC); PWMGenConfigure (PWM0_BASE、PWM_GEN_1、PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC); //0xff =256;256/16MHz = 16us //0xff =256;256/16MHz = 16us PWMGenPeriodSet (PWM0_BASE、PWM_GEN_0、0xff); PWMGenPeriodSet (PWM0_BASE、PWM_GEN_1、0xff); //蓝色 PWMPulseWidthSet (PWM0_BASE、PWM_OUT_0、0); //绿色 PWMPulseWidthSet (PWM0_BASE、PWM_OUT_1、1); //红色 PWMPulseWidthSet (PWM0_BASE、PWM_OUT_2、0x80); PWMGenEnable (PWM0_BASE、PWM_GEN_0); PWMGenEnable (PWM0_BASE、PWM_GEN_1); PWMOutputState (PWM0_BASE、(PWM_OUT_0_BIT | PWM_OUT_1_BIT | PWM_OUT_2_BIT)、true); while (1); 返回0; }
PWM_OUT_1获得的占空比为1/256、我在示波器上看到一个微小的脉冲。 PWM_OUT_0的占空比设置为0、但它是高电平(100%占空比)。 设置100%占空比可获得预期结果。
至少有两个其他人发现了此问题:
第二个标记为"已回答"、但我不理解 af36的权变措施。