STM32F407G Led 제어

다양한 테스트가 가능한 STM32 개발보드를 갖고 있다면 여러가지 만들어보고 테스트 할 수 있지만, 만약 ST에서 판매하는 STM32F407VG 디스커버리 데모보드만 갖고 있다면 ST에서 제공하는 Datasheet를 참고하여 간단하게 LED 테스트 할 수 있다. 이것은 CubeIDE를 사용하여 Pin 설정과 코딩을 어떻게 하는지 학습하는데 꽤 도움이 된다.

 

STM32F4DISCOVERY - STMicroelectronics

STM32F4DISCOVERY - Discovery kit with STM32F407VG MCU * New order code STM32F407G-DISC1 (replaces STM32F4DISCOVERY), STM32F407G-DISC1, STMicroelectronics

www.st.com

최신 문서에서는 회로도가 삭제되었지만, 예전 버전의 문서를 보면 데모보드의 LED Pin은 아래와 같이 설정되어 있는 확인할 수 있다.

STM32F407G 데모 보드는 PD12 ~ PD15 Pin으로 LED를 제어하며, 이것을 GPIO Output으로 설정해야 LED 제어가 가능하다. STM32CubeIDE에서 STM32F407G 데모보드를 선택하지 않고, STM32F407VG MCU를 아래와 같이 선택한다.

MCU로 타겟보드를 설정하면 STM32F407VG 전원과 같은 몇 가지 Pin 설정을 제외한 다른 모든 Pin 설정을 모두 수동으로 설정 해야 한다.

위 회로도에서 PD12 ~ PD15 Pin이 Led를 제어하기 위해 각 Pin을 GPIO Output으로 설정하도록 한다. 각 Pin에서 마우스 클릭으로 간단하게 Pin type 설정을 할 수 있다. Pin 설정을 완료하고 저장하면 CubeIDE는 위에서 설정한 상태로 MCU 초기화 및 개발에 필요한 코드가 자동으로 생성된다.

회로도를 바탕으로 GPIO Output으로 설정한 상태로 템플릿 코드가 생성되며, 이 코드를 바탕으로 1초 간격으로 GPIO를 토글시켜 Led Blink 동작하는 코드를 간단히 작성할 수 있다.

int main(void)
{
    HAL_Init();
    SystemClock_Config();
    MX_GPIO_Init();

    while (1)
    {
        HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_12);
        HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_13);
        HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_14);
        HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_15);
        HAL_Delay(1000);
    }
}

아주 간단한 코드로 STM32F407G 데모보드의 Led를 간단하게 제어하였고, 주말에 인터럽트를 등록하여 Blue button이 입력되면 Led를 토글하는 코드를 작성할 예정이다.