보드 : STM32 Nucleo-144 development board
MCU : STM32F429ZI
Project Manager => Code Generater => "Generate peripheral initialization as a pair of'.c/.h' files per peripheral" Check
[주변 장치별로 Source File과 Header File을 따로 생성]
Pinout & Configuration => System Core => RCC => Crystal/Ceramic Resonator
Pinout & Configuration => System Core => SYS => Serial Wire
따로 외부 Debug 장치없이 Serial Wire를 통해 Debug 작업을 함 NUCLEO 보드는 ST-LINK/V2 가 보드에 포함 되어 있음
Pinout & Configuration => Timers => RTC => Active Clock Source
타이머 Set
Clock Configuration => Clock set
사용할 Clock과 Prescaler등을 설정해 준다
Clock은
- External / Internal
- Low Speed / High Speed
등의 조합으로 LSE[Low Speed External], LSI[Low Speed Internal], HSE[High Speed External], HSI[High Speed Internal]
로 구분할 수 있다.
위의 설정한 바에 따르면
LSE : 32.768 KHz
LSI : 32 KHz
HSE : 4-26 MHz
HSI : 16 MHz
이고
LSE : RTC로 사용.
HSI : PLL을 통해 필요한 주파수로 변경한 다음 SYSCLK(System Clock)으로 사용하며 이를 분주하여 AHB, APB1, APB2 등의 주파수를 설정.
RCC 설정에서
HSE를 Disable 해준 이유는 8 MHz를 가진 Clock이 Open 되어 있어서 사용하지 않았다.
LSE는 연결이 되어있어서 Cystal / Ceramic Resonator 로 설정해 주었다.
* Bypass Clock Source는 다른 장치에서 Clock을 받아 사용할 때 설정해 준다.
여기까지가 기본적인 Setting이고 다음에는 GPIO를 통해 LED를 Control 하는 작업이다.
PB7에 내장되어 있는 LED인 LD2가 연결 되어 있음을 회로도에서 확인할 수 있다.
PC13에 내장되어 있는 Switch인 B1이 연결되어 있음을 회로도에서 확인할 수 있다.
PB7에 GPIO_Ouput : LED
PC13에 GPIO_Input : Switch
로 설정해준다.
해당 Pin Configuration이 끝났으면 Generate Code를 해준다.
main.c 안의 While문에 위와 같이 Switch로 LED를 제어하는 코드를 입력한다.
Tip. Ctrl + Space bar를 누르면 자동완성 기능이 있다.
Build를 클릭하고
Debug를 선택해주면
Debuging Tool이 나오는데 이때 Resume를 선택하면
Switch B1을 누를때마다 LED LD2가 켜짐을 알 수 있다.