This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
我正在尝试从 PWM0、GEN0和 Gen2获取两个相同的脉冲流。 我从 PF0的 GEN0得到脉冲、但从 PF2的 Gen2没有得到脉冲。
GPIOPinTypePWM (GPIO_PORTF_BASE、0x01);
GPIOPinConfigure (GPIO_PF0_M0PWM0);
GPIOPinTypePWM (GPIO_PORTF_BASE、0x04);
GPIOPinConfigure (GPIO_PF2_M0PWM2);
PwMClockSet (PWM0_BASE、PWM_SYSCLK_DIV_16); // 1250KHz 时钟。
PWM 配置 (PWM0_BASE、PWM_GEN_0、PWM_GEN_MODE_DOWN | //
PWM_GEN_MODE_NO_SYNC ); //
PWMDeadBandDisable (禁用带宽) (PWM0_BASE、PWM_GEN_0); //
PWMGenPeriodSet (PWM0_BASE、PWM_GEN_01250); // 1KHz 输出。
PWMPulseWidthSet (PWM0_BASE、PWM_GEN_0625); // 50%占空比。
PWMOutputUpdateMode (PWMOutputUpdateMode) (PWM0_BASE、PWM_OUT_0_BIT、PWM_OUTPUT_MODE_SYNC_LOCAL); //在0计数下输出变化。
PWM 使能 (PWM0_BASE、PWM_GEN_0); //
PWM 配置 (PWM0_BASE、PWM_GEN_2、PWM_GEN_MODE_DOWN | //
PWM_GEN_MODE_NO_SYNC ); //
PWMDeadBandDisable (禁用带宽) (PWM0_BASE、PWM_GEN_2); //
PWMGenPeriodSet (PWM0_BASE、PWM_GEN_21250); // 1KHz 输出。
PWMPulseWidthSet (PWM0_BASE、PWM_GEN_2625); // 50%占空比。
PWMOutputUpdateMode (PWMOutputUpdateMode) (PWM0_BASE、PWM_OUT_2_BIT、PWM_OUTPUT_MODE_SYNC_LOCAL); //在0计数下输出变化。
PWM 使能 (PWM0_BASE、PWM_GEN_2); //
PWMOutputState (PWM0_BASE、PWM_OUT_0_BIT | PWM_OUT_2_BIT、 正确 ); //打开 PWM 输出。
谢谢、Doug
尊敬的 Doug:
如果要将 PF0和 PF2用于 PWM 引脚、则需要按如下方式配置。
GPIOPinTypePWM (GPIO_PORTF_BASE、GPIO_PIN_0 | GPIO_PIN_2 );
目前的做法是、先启用 PF0、然后启用 PF2、但禁用 PF0进行 PWM 控制。
GPIOPinTypePWM (GPIO_PORTF_BASE、0x01);//仅启用 PF0
GPIOPinConfigure (GPIO_PF0_M0PWM0);
GPIOPinTypePWM (GPIO_PORTF_BASE、0x04);// 仅启用 PF2、除非您写入0x5、其中 PF0和 PF2均由 PWM 模块控制。
GPIOPinConfigure (GPIO_PF2_M0PWM2);
尊敬的 Charles:
没有、没有解决。 实际上、即使我是如何初始化 PF0上的端口 M0PWM0也仍然起作用。
谢谢、Doug
尊敬的 Doug:
如果您使用 GEN0注释掉与 PF0相关的所有代码、这会有什么不同? 我们只关注 PF2。
仍然没有输出脉冲流。
GPIOPinTypePWM (GPIO_PORTF_BASE、0x04);
GPIOPinConfigure (GPIO_PF2_M0PWM2);
PwMClockSet (PWM0_BASE、PWM_SYSCLK_DIV_16);
PWM 配置 (PWM0_BASE、PWM_GEN_2、PWM_GEN_MODE_DOWN |
PWM_GEN_MODE_NO_SYNC );
PWMDeadBandDisable (禁用带宽) (PWM0_BASE、PWM_GEN_2);
PWMGenPeriodSet (PWM0_BASE、PWM_GEN_21250);
PWMPulseWidthSet (PWM0_BASE、PWM_GEN_2625);
PWMOutputUpdateMode (PWMOutputUpdateMode) (PWM0_BASE、PWM_OUT_2_BIT、PWM_OUTPUT_MODE_SYNC_LOCAL);
PWM 使能 (PWM0_BASE、PWM_GEN_2);
谢谢、Doug
尊敬的 Doug:
输出 PWM2的 PF2引脚由 PWM_GEN_1控制、而不是我在代码中看到的 PWM_GEN_2控制。
再次感谢 Charles、我误解了 PWM 的结构。
道格