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 |