NUCLEO 보드를 보면 오른쪽 아래 green LED가 존재합니다.
오늘은 이 LED를 켜고 끄는 동작을 구현해보겠습니다.

우선 이 LED의 HW 적인 연결을 확인해야 합니다.
ST에서 제공하는 user manual의 HW 연결도를 확인해보면 다음과 같습니다.
green LED가 한쪽은 gnd, 한쪽은 MCU의 PB3에 연결이 되어있습니다.
따라서 MCU의 PB3에 High(5V) 를 주게되면 LED가 켜질것으로 예상됩니다.

project exprorer에서 프로젝트이름.ioc 를 클릭하면 다음과 같은 핀 configuration 화면이 나옵니다.
여기서 PB3 핀을 GPIO Output 으로 설정하면 해당 핀을 GPIO로 사용할 수 있습니다.

PB3를 마우스 오른쪽 클릭하여 핀의 이름을 설정할 수 있습니다.
저는 "LED" 라는 이름으로 설정하였습니다.

설정이 끝난 후 저장버튼을 누르게 되면 자동으로 드라이버 코드를 생성할 것인지 물어보게 됩니다.
여기서 YES를 눌러주겠습니다.

다시 코드로 돌아와서, 아래 경로의 main.h(60~61번 라인) 를 보면 방금전 LED라는 이름으로 설정한 매크로가 생성되었습니다. MCU의 PB3핀을 사용할 때 해당 이름으로 불리게 됩니다.
여기서 port는 PB3가 속해있는 B group 으로 일컫는 매크로로 보면 되는데, 예를 들어 PA0핀은 A Group , PC14 핀은 C Group에 할당 되어있습니다.

이제 코드를 작성해보겠습니다.
main의 while문에 아래와 같이 작성하였습니다.
여기서 HAL_GPIO_WritePin은 CubeIDE에서 지원해주는 driver 코드입니다.

while (1)
{
/* USER CODE END WHILE */
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET);
/* USER CODE BEGIN 3 */
}
코드를 다 작성했으면 아래 망치 그림을 눌러서, 프로젝트를 빌드합니다.
빌드를 하게되면 .ELF, .map 과 같은 빌드 산출물이 프로젝트 하위 debug 폴더에 생성됩니다.

코드 작성은 끝났으니, 실제 하드웨어를 PC에 연결해보겠습니다. 미리 준비해둔 micro usb 케이블과 보드를 연결하면 LED에 불이 들어오며 연결 된것을 확인할 수 있습니다.

이후 dubug 버튼(벌레 모양)을 눌러 타겟 보드와 연결- 디버깅을 시도해야 하는데, 그전에 Debug configuration에서 st-link 연결상태를 확인해보겠습니다.

그림과 같이 STM32 C/C++ Application에서 Debugger- Debug Probe가 ST-Link GDB server로 연결되어 있으면 됩니다.
설정 확인 이 창 아래의 DEBUG 버튼을 눌러 디버깅을 시작하거나, 다시 debug 버튼을 클릭하여 디버깅 하면 타겟과 연결이 됩니다.

그림과 같이 다운로드가 끝났다는 로그와 73번째 라인의 HAL_Init(); 에서 실행이 멈춰져 있는 것을 볼 수 있습니다.
여기서 그림의 위쪽 재생버튼 처럼 생긴 resume을 클릭하여 MCU를 동작시키겠습니다.
LED가 켜져있다면 코드가 정상적으로 동작하는 것입니다.

아래 초록 LED가 정상적으로 점등되었습니다. 또한 HAL delay등을 이용해 깜빡이는 LED도 구현할 수 있습니다.
감사합니다.

'NUCLEO L432KC' 카테고리의 다른 글
STM32 L432KC 부트로더 개발하기(3) (0) | 2023.07.01 |
---|---|
STM32 L432KC 부트로더 개발하기(1) (0) | 2023.05.29 |
STM32CubeIDE 설치, 연결 (0) | 2023.05.07 |
NUCLEO L432KC 시작 (0) | 2023.05.07 |