[STM32] 2.PWM DMA
CubeMX 配置
- Channel2 -- PWM Generation CH2
- DMA Setting -- TIM CH2 通用配置(内存到外设)
- 参数配置 -- Prescaler(决定占空比调节的精细度),Counter period(和前者一起,决定了周期)
PWM DMA
#include "default_task.h"
#include "main.h"
#include "syscfg.h"
#include "FreeRTOS.h"
#include "task.h"
#include "tim.h"
#define NUM 9
uint32_t send_Buf[9] = { 0};
void default_task(void *pt){
for (int i = 0; i < NUM; i++){
send_Buf[i] = 100 * (i + 1);
}
send_Buf[NUM - 1] = 0;
HAL_TIM_PWM_Start_DMA(&htim2,TIM_CHANNEL_2,send_Buf,NUM);
for(;;){
HAL_TIM_PWM_Start_DMA(&htim2,TIM_CHANNEL_2,send_Buf,NUM);
vTaskDelay(10);
}
}
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
{
HAL_TIM_PWM_Stop_DMA(&htim2, TIM_CHANNEL_2);
}
License:
CC BY 4.0