[ST3M32] 발광 다이오드, 솔더 브릿지, Schematic 보기 및 내장 LED 켜보기 (책 없이 해봤던 기록)

YUN·2025년 8월 15일

[기본적인 CS]

목록 보기
7/21

1. 발광 다이오드

이것이 발광 다이오드의 기호이다.

2. 솔더 브릿지 (SB)

SB(Solder Bridge)는 사용자가 필요에 따라 납땜으로 연결(Short)하거나 연결하지 않음(Open)으로 설정할 수 있게 만든 PCB상의 작은 브리지

위는 STM32F103RB-NUCLEO 보드의 뒷면이다. 뒷면에 보이는 SB__ 로 적혀있는 부분이 전부 솔더브릿지이다.

Schematic 과 SB

위와같이 Schematic에서 SB를 확인할수있다.

이러한 SB들은 내가 직접 보드의 뒷면을 보고 연결되어있는지 아닌지 확인해야한다.

SB21은 연결되어있고, SB18은 연결되어있지않다.

위와같이 연결된 SB와 연결되지않은 SB를 확인할 수 있다.

3. 내장 LED가 어느 핀과 연결되어 있는지 찾기

Schematic에서 발광 다이오드 LD2를 찾을 수 있다.

보드의 뒷면을 보고 SB21, SB42, SB29가 어떻게 연결되어있는지 확인해야한다.

  • SB21 : Short
  • SB29 : OPEN
  • SB42 : SHORT

이다.

즉, LD2PA5와 연결되어 있음을 확인할 수 있다.

4. PA5 핀 설정하기

PA5-GPIO_Output 으로 PA5GPIO로 설정하고 방향은 OUT으로 설정한다.

위와 같이 정상적으로 PA5GPIO로, 방향은 OUT 으로 설정된 것을 확인할 수 있다.

Configuration-PA5 를 누르면 이처럼 PA5 Configuration 창이 열리고 세부적인 설정을 할 수 있다.

Ctrl+S 로 저장하면 위와 같은 화면이 뜬다. Yes 를 누르면 자동으로 앞서 진행한 클락 설정, 핀 설정등의 C언어 코드Generate 된다.

5. HAL Driver를 이용해 코드 작성하기

Drivers-STM32F1xx_HAL_Driver-inc-stm32f1xx_hal_gpio.h에 들어가면

void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);

위와 같은 함수를 찾을 수 있다. 이 함수는 특정 GPIO핀에 HIGHLOW를 쓰는 함수이다.

main.c로 돌아가자.

main.c 의 main() 내부의 무한 루프문이다.

여기에

/* USER CODE BEGIN 3 */
 
/* USER CODE END 3 */

와 같은 식으로 주석이 있는데, 이 내부에만 본인이 코드를 작성해야한다. 외부에 작성하면 코드를 Generate 할 때 전부 사라져버린다.

위와 같이 코드를 작성해준다.

6. 브레이크 포인트

75행더블 클릭으로 브레이크 포인트를 걸어준다.

디버깅에 이용할 예정이다.

7. STM32와 PC를 연결해준다.

위와같이 케이블을 이용해 STM32 <-> PC간 연결해준다.

STM32F103RB NUCLEO 보드는 내부에 ST-LINK를 포함하고있고, 내부적으로 ST-LINK와 STM32F103RB가 연결되어있다.

8. 빌드 및 업로드 (F11)

F11을 누르면 위와 같이 프로젝트를 빌드할 수 있다.

OK를 눌러준다.

위와같이 ST-LINK 펌웨어 업데이트 하라하면 YES 누르고 진행해준다.

GOOD

Console을 보니 STM32에 정상적으로 코드가 업로드된 것 같다.

9. 디버그

현재 위와같이 HAL_Init()에 이전에 설정해둔 BreakPoint가 걸려있다.

Resume 버튼 (F8)을 눌러서 실행을 재개해준다.

LD2가 정상적으로 깜빡이는 것을 확인할 수 있다.

GOOD

위의 버튼을 누르거나 CTRL+F2 하면 디버깅이 중지된다.

profile
안녕하세요. 전자공학부 학부생의 공부 기록입니다.

0개의 댓글