我是靠谱客的博主 迷人中心,最近开发中收集的这篇文章主要介绍stm32之stm32cubemx配置定时器输出指定个数不同占空比脉冲简介背景stm32cubemx配置代码实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

简介

使用定时器PWM触发DMA发送指定个数占空比。

背景

用这种方式不需要CPU去不断的刷时序了,这些都由DMA去完成了。CPU要做的只是根据需要去改变数组里的东西,腾出时间给CPU去处理其他事情。

stm32cubemx配置

时钟选择
在这里插入图片描述
烧录管脚配置
在这里插入图片描述
这里我选择PA0管脚进行脉冲输出
在这里插入图片描述
DMA配置如下
在这里插入图片描述
配置定时器PWM周期为1ms
在这里插入图片描述

系统时钟配置
在这里插入图片描述

代码实现

#define BUFFSIZE     10
uint8_t i = 0;
uint32_t sendBuf[BUFFSIZE] = {0};
int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_TIM2_Init();
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */

//发送10个周期的波,每次低电平周期增加20us
for (i = 0; i < BUFFSIZE; i++) //10
{
	sendBuf[i] = 20 * (i + 1);
}
  while (1)
  {
	 HAL_TIM_PWM_Start_DMA(&htim2, TIM_CHANNEL_1, (uint32_t*)sendBuf, BUFFSIZE);

    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

/**
  * @brief This function handles DMA1 channel5 global interrupt.
  */
void DMA1_Channel5_IRQHandler(void)
{
  /* USER CODE BEGIN DMA1_Channel5_IRQn 0 */

  /* USER CODE END DMA1_Channel5_IRQn 0 */
  HAL_DMA_IRQHandler(&hdma_tim2_ch1);
  /* USER CODE BEGIN DMA1_Channel5_IRQn 1 */

  /* USER CODE END DMA1_Channel5_IRQn 1 */
}

// PWM完成DMA关闭
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
{
	HAL_TIM_PWM_Stop_DMA(&htim2, TIM_CHANNEL_1);
}

1.第一个周期
在这里插入图片描述

2.第二个周期在这里插入图片描述
2.最后一个周期
在这里插入图片描述

最后

以上就是迷人中心为你收集整理的stm32之stm32cubemx配置定时器输出指定个数不同占空比脉冲简介背景stm32cubemx配置代码实现的全部内容,希望文章能够帮你解决stm32之stm32cubemx配置定时器输出指定个数不同占空比脉冲简介背景stm32cubemx配置代码实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部