STM32F0 PWM 코드 작성하기

STM32F0 PWM 코드를 작성하는 예제입니다.

STM32F091RC PWM목차

  1. STM32F0XX CUBEMX로 PWM클럭 설정하기
  2. STM32F0XX PWM 코드 작성하기 (현재 포스트)
  3. STM32F0XX PWM 설정 부록 설명
  4. STM32F0XX PWM Duty 조절하기

본 포스팅은 PWM 클럭을 생성하는 것을 목적으로 합니다.

아두이노처럼 밝기를 실시간으로 설정하고 제어하는 것은 본 포스팅과 무관합니다.

 

이전 포스팅에서 코드를 생성하면 위와 같이 초기 코드가 나올 것이다.

 

PWM 코드를 찾아보니 별로 없더라.

 

HAL_TIM_PWM_Start()

생성된 코드를 찾아보면 이미 초기화 코드는 작성되어 있으니, 기본형으로 PWM 컨트롤을 시작하려면 Start해주면 된다. 따라서 위 코드 한줄만 추가하면 된다.

근데, 그냥 돌아가면 재미없지. 입력 인자를 넣어줘야한다.

디스크립션을 읽어보면 위와 같이 상세히 적혀있다. 몇번째 타이머를 사용하는지, 또 어디 채널을 사용하는지를 입력해주면, 해당 타이머와, 클럭이 동작하며 PWM 제어가  시작된다.

 

이전 포스팅의 CUBEMX를 잘 보면 타이머와 채널을 알 수 있다. 적절히 입력해 사용하면 되겠다.

초기 세팅은 1초 주기로, 50%의 듀티를 가지므로, 0.5초 간격으로 LED가 토글 될 것이다.

아래에 코드 시연 영상이 있다.

“STM32F0 PWM 코드 작성하기”의 7개의 댓글

  1. DKMIN님 유익한 포스팅 감사합니다.
    HAL 드라이버를 이용할때 혹시 User manual을 제외하고 따로 참조하시는
    레퍼런스가 있으신가요?

    앞으로도 좋은 포스팅 기대하겠습니다.

    1. 안녕하세요. 커뮤니티를 따로 참고하고 있진 않습니다.
      주로 stm에서 배포하는 레퍼런스 메뉴얼과, 가이드를 주로 참고합니다.
      HAL 드라이버는 별도의 문서가 있으니 참고하셔서 많이 이용하시면 좋을 듯 합니다.

      감사합니다.

  2. 안녕하세요 좋은 포스팅 감사합니다
    혹시 저기서 딜레이를 이용한거 말고 다른 타이머를 인터럽트 하여 그 타이머를 이용하여 pwm을 작동하게 하려면
    어떻게 해야 할까요?

    1. 안녕하세요 구지민님
      포스팅에서는 딜레이를 사용하지 않고 타이머 인터럽트르 사용하여 PWM을 동작시켰습니다.

      감사합니다.

댓글 남기기

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.