MyTetra Share
Делитесь знаниями!
PWM
Время создания: 10.01.2018 14:00
Раздел: Electronics - Microcontrollers - STM32 - HAL

Включаем таймер:



Автоматически подключились порты, к которым на плате подпаяны светодиоды.



Настройки тактирования:



Выставляем тактирование таймера в его настройках (указываем максимальный Counter Period):



В GPIO Settings выставляем все порты (выделяем через шифт) в режим High:



Генерируем код и реализуем PWM на одном из каналов:


//main.c


/* USER CODE BEGIN 0 */

void stupidDelay(void);

/* USER CODE END 0 */


/* USER CODE BEGIN 2 */

HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_1);

HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_2);

HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_3);

HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_4);

/* USER CODE END 2 */


/* USER CODE BEGIN WHILE */

while (1)

{

/* USER CODE END WHILE */


/* USER CODE BEGIN 3 */

uint16_t i = 0;

for(; i < 65535; ++i)

{

TIM4->CCR1 = i;

stupidDelay();

}

for(; i > 0; --i)

{

TIM4->CCR1 = i;

stupidDelay();

}

}

/* USER CODE END 3 */


/* USER CODE BEGIN 4 */

void stupidDelay(void)

{

for(uint8_t delay = 0; delay < 255; ++delay) {}

}

/* USER CODE END 4 */


Описание функции HAL_TIM_PWM_Start в разделе 65 HAL TIM Generic Driver / 65.2 TIM Firmware driver API description / 65.2.5 Time PWM functions







 
MyTetra Share v.0.53
Яндекс индекс цитирования