硬汉嵌入式论坛

 找回密码
 立即注册
查看: 235|回复: 3
收起左侧

[TIMER] (求助帖)stm32h743 dma+pwm无法正确输出波形

[复制链接]

1

主题

0

回帖

3

积分

新手上路

积分
3
发表于 2025-4-2 10:09:00 | 显示全部楼层 |阅读模式
本人小白,最近接触h7,全程用cubemx配置的,相关dma和tim配置如下,APB1时钟200mhz。现象如下,如果pwm_buffer[PWM_BUFFER_SIZE] = {10,10,20,30};  输出的波形居然是时间极长的斜波,当pwm_buffer[PWM_BUFFER_SIZE] = {10,10,20,0};输出的波形只有一个周期高电平,理论上来讲是4个。同样的配置和方法放f103上是没问题的,h7的dma用这种最简单的方式输出pwm有什么特殊的配置吗,求助各位大佬。
下面是我的配置文件

cubemx配置

cubemx配置

cubemx配置

cubemx配置

cubemx配置

cubemx配置

下面是放在freertos中循环运行的任务代码

#include "moto.h"



#include "tim.h"

// 定义 PWM 占空比数组
#define PWM_BUFFER_SIZE 4
uint16_t pwm_buffer[PWM_BUFFER_SIZE] = {10,10,20,0};  

void Start_PWM_DMA(void)
{
    // 启动 TIM2 PWM + DMA 传输
    if (HAL_TIM_PWM_Start_DMA(&htim2, TIM_CHANNEL_1, (uint32_t*)pwm_buffer, PWM_BUFFER_SIZE) != HAL_OK)
    {
        Error_Handler();
    }

}


/* USER CODE BEGIN Header UpdateData */
/**
  * @brief  Function implementing the Update thread.
  * @param  argument: Not used
  * @retval None
  */
/* USER CODE END Header UpdateData */
void  UpdateData(void *argument)
{
  /* USER CODE BEGIN  UpdateData */
  /* Infinite loop */
  for(;;)
  {
Start_PWM_DMA();
    osDelay(50);
  }
  /* USER CODE END UpdateData */
}
回调函数关闭dma:

/* USER CODE BEGIN 2 */
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
{

                HAL_TIM_PWM_Stop_DMA(&htim2, TIM_CHANNEL_1);
}
/* USER CODE END 2 */
下面是波形
pwm_buffer[PWM_BUFFER_SIZE] = {10,10,20,0}的时候:

pwm_buffer[PWM_BUFFER_SIZE] = {10,10,20,0};

 pwm_buffer[PWM_BUFFER_SIZE] = {10,10,20,0};

pwm_buffer[PWM_BUFFER_SIZE] = {10,10,20,30}的时候  :

pwm_buffer[PWM_BUFFER_SIZE] = {10,10,20,30};

 pwm_buffer[PWM_BUFFER_SIZE] = {10,10,20,30};



回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2025-4-2 15:03:01 | 显示全部楼层
STM32CubeH7软件包里面有DMA PWM的例子,直接复制粘贴,简单修改适配你的引脚,看看正常不。这个例子是没问题的,之前实测过。
回复

使用道具 举报

5

主题

157

回帖

172

积分

初级会员

积分
172
发表于 2025-4-3 00:40:52 | 显示全部楼层
你应该在DMA完成中断中停止PWM
回复

使用道具 举报

5

主题

157

回帖

172

积分

初级会员

积分
172
发表于 2025-4-3 00:43:04 | 显示全部楼层
而且你也没打开PWM的预装
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-4-25 22:01 , Processed in 0.289384 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表