STM32F1

STM32F1, STMCubeMX, PWM, Digital piranha LED

CoyoteUgly 2018. 8. 6. 13:19

STM32F1, STMCubeMX, PWM, Digital piranha LED



0. 참고 자료

테스트를 진행한 모듈의 스펙 중에 PWM 관련한 자료가 없어서 임의로 동작시켰습니다.

1. 모듈



2. HW 구성

3V3 ~ 5V 로 구동됨


3. Timer Enable

  • Clock Source : Internal Clock
  • Channel1 : PWM Generation CH1


4. RCC > HSE > Crystal/Ceramic Resonator


5. Clock Configuration > 72MHz


6. Configuration > TIM


7. Parameter Settings

Prescaler : 72-1
Counter Period : 100

    /*
        0.1ms

        1) 72MHz System Clock, Prescaler 1MHz Timer Clock
            Prescaler = 72MHz / 72MHz - 1 = 1MHz
        2) 1MHz Timer Clock, 100, 10KHz
            Period = 1MHz / 10KHz = 100
    */


8. SW 구성

HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);
htim3.Instance->CCR1 = 0; // % duty cycle
uint8_t duty = 0;
    
while (1)
{
    htim3.Instance->CCR1 = duty;
    duty = duty + 1;
    if (duty>100)
        duty = 0;
 
    HAL_Delay(100);
}


9. 소스


10. 결과




duty 50% 상태