[APM32F4] APM32F407IGT6 PB9无法输出PWM波

[复制链接]
Tom952331 发表于 2025-8-16 10:53 | 显示全部楼层 |阅读模式
上程序

  1. #include "main.h"
  2. #include "Board.h"

  3. /* Private includes *******************************************************/

  4. /* Private macro **********************************************************/

  5. /* printf function configs to USART1*/
  6. #define DEBUG_USART  USART1

  7. #define DIV 83

  8. /* Private typedef ********************************************************/

  9. /* Private variables ******************************************************/

  10. /* Private function prototypes ********************************************/

  11. /* External variables *****************************************************/

  12. /* External functions *****************************************************/

  13. /*!
  14. * [url=home.php?mod=space&uid=247401]@brief[/url]       Main program
  15. *
  16. * @param       None
  17. *
  18. * @retval      None
  19. */
  20. int main(void)
  21. {
  22.     GPIO_Config_T GPIO_ConfigStruct;
  23.     TMR_BaseConfig_T TMR_TimeBaseStruct;
  24.     TMR_OCConfig_T OCcongigStruct;

  25.     RCM_EnableAPB1PeriphClock(RCM_APB1_PERIPH_TMR4);
  26.     RCM_EnableAHB1PeriphClock(RCM_AHB1_PERIPH_GPIOB);

  27.     /* TMR2_CH1 */
  28.     GPIO_ConfigPinAF(GPIOB, GPIO_PIN_SOURCE_0, GPIO_AF_TMR4);
  29.     /* TMR2_CH2 */
  30.     GPIO_ConfigPinAF(GPIOB, GPIO_PIN_SOURCE_1, GPIO_AF_TMR4);
  31.     /* TMR2_CH3 */
  32.     GPIO_ConfigPinAF(GPIOB, GPIO_PIN_SOURCE_2, GPIO_AF_TMR4);
  33.     /* TMR2_CH4 */
  34.     GPIO_ConfigPinAF(GPIOB, GPIO_PIN_SOURCE_3, GPIO_AF_TMR4);

  35.     /* Config TMR2 GPIO for output PWM */
  36.     GPIO_ConfigStruct.pin = GPIO_PIN_0|GPIO_PIN_1| GPIO_PIN_2| GPIO_PIN_9;
  37.     GPIO_ConfigStruct.mode = GPIO_MODE_AF;
  38.     GPIO_ConfigStruct.otype = GPIO_OTYPE_PP;
  39.     GPIO_ConfigStruct.speed = GPIO_SPEED_100MHz;
  40.     GPIO_Config(GPIOB, &GPIO_ConfigStruct);

  41.     /* config TMR2 */
  42.     TMR_TimeBaseStruct.clockDivision = TMR_CLOCK_DIV_1;
  43.     TMR_TimeBaseStruct.countMode = TMR_COUNTER_MODE_UP;
  44.     TMR_TimeBaseStruct.division = DIV;
  45.     TMR_TimeBaseStruct.period = 999;
  46.     TMR_ConfigTimeBase(TMR4, &TMR_TimeBaseStruct);

  47.     /* Configure channel1 */
  48.     TMR_ConfigOCStructInit(&OCcongigStruct);

  49.     OCcongigStruct.mode = TMR_OC_MODE_PWM1;
  50.     OCcongigStruct.outputState = TMR_OC_STATE_ENABLE;
  51.     OCcongigStruct.polarity = TMR_OC_POLARITY_HIGH;

  52.     OCcongigStruct.pulse = 800;
  53.     TMR_ConfigOC1(TMR4, &OCcongigStruct);
  54.     TMR_ConfigOC1Preload(TMR4, TMR_OC_PRELOAD_ENABLE);

  55.     /* Configure channel2 */
  56.     OCcongigStruct.pulse = 700;
  57.     TMR_ConfigOC2(TMR4, &OCcongigStruct);
  58.     TMR_ConfigOC2Preload(TMR4, TMR_OC_PRELOAD_ENABLE);

  59.     /* Configure channel3 */
  60.     OCcongigStruct.pulse = 600;
  61.     TMR_ConfigOC3(TMR4, &OCcongigStruct);
  62.     TMR_ConfigOC3Preload(TMR4, TMR_OC_PRELOAD_ENABLE);

  63.     /* Configure channel4 */
  64.     OCcongigStruct.pulse = 500;
  65.     TMR_ConfigOC4(TMR4, &OCcongigStruct);
  66.     TMR_ConfigOC4Preload(TMR4, TMR_OC_PRELOAD_ENABLE);

  67.     TMR_EnableAutoReload(TMR4);
  68.     TMR_Enable(TMR4);

  69.     while(1)
  70.     {
  71.     }
  72. }
程序下进去,没有波形。
请问高手,如何解决?谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

142

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部