ST/STM32F103C8

STM32F103C8 - PWM

engineer4ever 2025. 8. 8. 10:20

 

MCU
STM32F103(ST)
IDE
Atollic(TrueSTUDIO), STM32CubeMX
목표
HAL driver를 사용하여 PWM으로 20KHz에 duty 50의 파형을 만든다.

 

1. STM32CubeMX : PWM 설정

- 'Pinout & Configuration' Tab으로 이동

1) TIM2 선택

2) Channel 1 : PWM Generation CH1 선택

3) Prescaler : 32-1

- 64MHz / 32 = 2,000,000 = 2MHz

4) Counter Period : 100-1

- 2,000,000 / 100 = 20,000 = 20KHz

5) PWM Generation Channel1 > Pulse : 50

- 20KHz에 duty 50인 파형 발생

- GENERATE CODE 클릭


2. ATOLLIC : main.c 수정

- HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);

/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA_Init();
MX_ADC1_Init();
MX_RTC_Init();
MX_USART1_UART_Init();
MX_TIM6_Init();
MX_TIM7_Init();
/* USER CODE BEGIN 2 */
HAL_ADC_Start_DMA(&hadc1,(uint16_t*)&(adc_val[0]),3);
HAL_TIM_Base_Start_IT (&htim6);
HAL_TIM_Base_Start_IT (&htim7);
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);
/* USER CODE END 2 */
 

 

'ST > STM32F103C8' 카테고리의 다른 글

STM32F103C8 - I2C(EEPROM)  (1) 2025.08.08
STM32F103C8 - RTC(Systick handler)  (0) 2025.08.08
STM32F103C8 - TIMER  (1) 2025.08.08
STM32F103C8 - ADC(DMA)  (0) 2025.08.08
STM32F103C8 - ADC(Interrupt)  (0) 2025.08.08