본문 바로가기

STM32F469I-DISCO

Blink LED

kit에는 4EA의 LED가 존재함.

HW기초가 되는 LED 관련 기초 프로그램을 만들어 본다.

 

참고 링크 : https://wiki.st.com/stm32mcu/wiki/Getting_started_with_GPIO

 

위의 테이블의 내용을 schematic에서 확인해 본다.

schematic에서 확인하였으니 stm32cubeIDE에서 프로젝트를 생성한다.

 

1. stm32 project 선택.

 

2. Board Selector에서 해당 보드 검색 후 "Next"

 

3. 프로젝트 이름 "test_blink_led"을 표기하고 finish.

 

4. Board Project Options는 "No"을 선택.

 

5. "test_blink_led.ioc" 선택 => Pinout & configuration => System Core => GPIO에서 LED 관련 "Pin Name"과 "User Label" 확인.

 

6. ctrl+s로 저장하거나 ( 변경 사항이 있을 경우 Dialog box에서 generate code 진행), ioc 파일을 선택하여 Generate Code을 진행한다.

 

7. int main(void)에서 while 문에서 HAL_GPIO_TogglePin과 HAL_Delay를 적당히 사용한다.

HAL_GPIO_TogglePin 함수 설명은 https://sourcevu.sysprogs.com/stm32/HAL/symbols/HAL_GPIO_TogglePin?utm_source=chatgpt.com

 

HAL_GPIO_TogglePin() - syntax, references, description

Arguments GPIOx Where x can be (A..K) to select the GPIO peripheral for STM32F429X device or x can be (A..I) to select the GPIO peripheral for STM32F40XX and STM32F427X devices. GPIO_Pin Specifies the pins to be toggled. Return value None

sourcevu.sysprogs.com

HAL_GPIO_TogglePin 을 사용하기 위해서 MX_GPIO_Init()을 참고한다.

MX_GPIO_Init의 내용.

                                   LED 의 pin name, group를 참고

 

while 문 추가 부분.

 

8. build 후 debug에서 정상 동작을 확인함.

 

** 기타 확인 부분.

HAL_GPIO_TogglePin의 첫 번째 argument의 GPIOx를 확인해 본다.

main.h에 아래와 같이 선언되어 있음.

   #define LED1_GPIO_Port GPIOG

   #define LED4_GPIO_Port GPIOK

따라서 while의 내용을 아래와 바꾸어도 정상 동작.

 

 LED4의 Pin Name가 PK3 이며, 여기에서 "K"가 "GPIOx"의 x로 표기된다.