[APM32F4] APM32F407IGT6 PWM例程烧进去没波形

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

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

  4. /** @addtogroup Examples
  5.   @{
  6.   */

  7. /** @addtogroup TMR_PWMOutput
  8.   @{
  9.   */

  10. /** @defgroup TMR_PWMOutput_Functions Functions
  11.   @{
  12.   */
  13. #ifdef APM32F411
  14. #define DIV 99
  15. #else
  16. #define DIV 167
  17. #endif
  18. /**@} end of group TMR_PWMOutput_Functions */

  19. /*!
  20. * [url=home.php?mod=space&uid=247401]@brief[/url]       Main program
  21. *
  22. * @param       None
  23. *
  24. * @retval      None
  25. */
  26. int main(void)
  27. {
  28.     GPIO_Config_T GPIO_ConfigStruct;
  29.     TMR_BaseConfig_T TMR_TimeBaseStruct;
  30.     TMR_OCConfig_T OCcongigStruct;

  31.     RCM_EnableAPB2PeriphClock(RCM_APB2_PERIPH_TMR1);
  32.     RCM_EnableAHB1PeriphClock(RCM_AHB1_PERIPH_GPIOA | RCM_AHB1_PERIPH_GPIOB);

  33.     GPIO_ConfigPinAF(GPIOA, GPIO_PIN_SOURCE_8, GPIO_AF_TMR1);
  34.     GPIO_ConfigPinAF(GPIOA, GPIO_PIN_SOURCE_7, GPIO_AF_TMR1);

  35.     /* Config PA7 and PA8 for complementary output PWM */
  36.     GPIO_ConfigStruct.pin = GPIO_PIN_7 | GPIO_PIN_8;
  37.     GPIO_ConfigStruct.mode = GPIO_MODE_AF;
  38.     GPIO_ConfigStruct.otype = GPIO_OTYPE_PP;
  39.     GPIO_ConfigStruct.speed = GPIO_SPEED_100MHz;
  40.     GPIO_Config(GPIOA, &GPIO_ConfigStruct);

  41.     /* config TMR1 */
  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(TMR1, &TMR_TimeBaseStruct);

  47.     OCcongigStruct.idleState = TMR_OC_IDLE_STATE_RESET;
  48.     OCcongigStruct.mode = TMR_OC_MODE_PWM1;
  49.     OCcongigStruct.nIdleState = TMR_OC_NIDLE_STATE_RESET;
  50.     OCcongigStruct.nPolarity = TMR_OC_NPOLARITY_HIGH;
  51.     OCcongigStruct.outputNState = TMR_OC_NSTATE_ENABLE;
  52.     OCcongigStruct.outputState = TMR_OC_STATE_ENABLE;
  53.     OCcongigStruct.polarity = TMR_OC_POLARITY_HIGH;
  54.     OCcongigStruct.pulse = 300;
  55.     TMR_ConfigOC1(TMR1, &OCcongigStruct);

  56.     TMR_ConfigOC1Preload(TMR1, TMR_OC_PRELOAD_ENABLE);
  57.     TMR_EnableAutoReload(TMR1);
  58.     TMR_Enable(TMR1);
  59.     TMR_EnablePWMOutputs(TMR1);

  60.     while(1)
  61.     {
  62.     }

  63. }
请问高手,程序有问题吗?谢谢
海洋凝视 发表于 2025-8-15 10:09 | 显示全部楼层
这代码写得这么干净整洁,还能有错啊!
反正,我是没有看出来哪里有问题。
dffzh 发表于 2025-8-15 14:30 | 显示全部楼层
是官方demo例程吗?如果是,一般不会有问题;
MCU有正常运行起来吗?还是MCU正常在跑,但是测试引脚地方没有PWM波形?
 楼主| Tom952331 发表于 2025-8-15 15:29 | 显示全部楼层
dffzh 发表于 2025-8-15 14:30
是官方demo例程吗?如果是,一般不会有问题;
MCU有正常运行起来吗?还是MCU正常在跑,但是测试引脚地方没 ...

不知道能不能跑。反正灯不亮,也不能仿真。

8.jpg
dffzh 发表于 2025-8-15 15:56 | 显示全部楼层
本帖最后由 dffzh 于 2025-8-15 15:58 编辑
Tom952331 发表于 2025-8-15 15:29
不知道能不能跑。反正灯不亮,也不能仿真。
那你这MCU程序都没有正常运行起来啊,下面这个地方勾选没:
微信图片_20250815155805.png
 楼主| Tom952331 发表于 2025-8-15 16:12 | 显示全部楼层
dffzh 发表于 2025-8-15 15:56
那你这MCU程序都没有正常运行起来啊,下面这个地方勾选没:

勾选了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

142

帖子

0

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