보드에 내장된 LED를 제어해보자
보드 선택과정에 대한 설명은 생략한다.
생성을 하게되면 먼저 ioc 파일이 열린다.
해당 보드에 핀 설정, 주변장치 설정, 통신 설정등이 가능하다.
먼저 데이터시트 등을 참고해서 핀넘버를 알아야겠으나 생략한다 ( 나중에 자세히 알게되면 포스트해야지 )
PA5번이 보드내장 LED와 연결되어있다. ( 약칭 LD2 )
Generate Code를 해주면 이제 main.c 파일이 열린다.
약칭 LD2로 지어준 핀이 잘 생성되었는지 확인해보자
(LD2_Pin, LD2_GPIO_Port, 등등)
물론 세팅할때 default 값으로 B1 (user button) 또한 세팅이 되어서 위에 보면 B1_Pin 또한 설정되어있다.
main은 기본적으로 각종 초기화함수들 호출되도록 설정되어있다.
main.c (뿐만은 아니지만) 파일을 잘 보면 주석이 많은걸 알수있다.
/* USER ~~ BEGIN, END */ 라고 쓰여있는곳에 (꼭 BEGIN과 END사이에) 사용자가 코드를 추가 할 수 있다.
BEGIN 전이나, END 후에 (빈공간) 작성하였다면 코드는 나중에 사라져있다.
(아마 저장이 안되는듯)
어렵지 않다.
보통 동작은 while문 안에서 돌게된다.
펌웨어라는게 MCU 위에서 무한히 돌도록 설계하는거라서 ( 쉽게말해 입력한 동작만 계속 수행하게 한다는 이야기다 )
while문 안에서 돌려준다.
STM32CubeIDE에서는 편한 API, HAL 라이브러리 등을 제공하는데
보통 이름이 HAL_ 로 시작한다. 궁금하면 HAL_GPIO_TogglePin을 우클릭해서 open declaration 을 눌러보자
( 편하게 ctrl + 좌클릭 도 가능하다 )
그러면 이제 xx_hal_어쩌구 저쩌구 이런 파일이 열리고 해당 함수로 이동하는데,
주석이 잘 달려있으니까, 남이 짠 코드는 주석 읽어보는 습관을 가지도록 하자
위 코드처럼 LED를 Toggle 시켜주도록 입력해주고 실행해보자!
( HAL_Delay(1000)은 1000만큼 기다려라는 이야긴데, 이게 1000ms는 꼭 아닐것이다. 나중에 알아봐야지 )
보드위에 led가 점멸할것이다.
'[stm32]' 카테고리의 다른 글
[STM32] Watch Dog (0) | 2023.12.22 |
---|---|
[STM32] ADC값을 받는 방법 (0) | 2023.12.22 |
[STM32] LED, Button 제어 (0) | 2023.12.19 |
[STM32] User Button #2 (0) | 2023.12.19 |
[STM32] User Button #1 (0) | 2023.12.19 |