ST Micro의 Nucleo 보드는 시험개발용으로 혹은 교육용으로 쓰기에 매우 적절합니다.
보통은 같이 제공되는 STM32 Cube IDE 로 개발을 합니다....... 만....
세상에는 가끔 이걸 못 쓰는 병신(...) 혹은 피치 못할 사정(보드 급사) 으로 혹은 아두이노 코드를 재활용 해야 하는 경우가 있습니다. .... 네 그게 접니다 (...)
그런데 Arduion IDE로 Nucleo-32 보드에 프로그램을 올릴 수 있다고는 하는데 한글로 된 자세한 설명은 드물어서
몇시간 무지성 검색을 한 끝에 성공했으니 기록을 남깁니다.
1. 시작 전에 STM32 Cube Programmer 프로그램 (ST Micro 공홈에서 받습니다. ) - 미리 설치합시다.
그리고 시스템 속성 - 환경변수 에서 Path 에 Cube 프로그래머 위치를 등록합니다.
2. Nucleo 보드 (저는 STM32F303K8 Nucleo-32 보드를 써습니다.) 및 USB 케이블이 정상적으로 연결 되는지 확인합니다.
3. 아두이노 IDE를 실행합니다. 파일 - 기본설정에 들어가서..
4. 추가 보드 관리자 옆 빈칸 옆에 있는 녹색 버튼을 누릅니다.
여기에 다음 한 줄을 입력합니다.
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
5. 확인을 누르고 첫 화면으로 나와서 보드매니저를 누릅니다. 검색창에 nucleo 혹은 STM32 를 치면 맨 위에 보드 패키지가 나옵니다. 설치해주면 됩니다.
6. 이제 보드 세팅을 해야 합니다. 도구를 눌러서 다음과 같이 세팅합시다.
보드 종류는 Nucleo-32, 포트는 처음에 인식된 포트로, 보드 파트넘버가 맞는니 확인하고,
제일 중요한 업로드 방법을 SWD 로 해야 에러가 안 납니다. USB는 없으니 None 이고, UART는 저는 필요가 없어서 껐지만 보통은 켭니다.
7. 그리고.. 프로그램을 작성해야 하는데..... 간단히 LED 부터 깜빡여 봅시다.
파일 - 예제 - 01_베이직 - Blink 를 누르면 아두이노용 blink 예제가 나옵니다. 이걸 그대로 컴파일 - 업로드 해도 에러는 안 나는데 동작 안 합니다... ㅎㅎ..
8. 일단 보드 유저 매뉴얼을 보면.... UM1956 매뉴얼을 보라고 되어 있습니다.
https://www.st.com/resource/en/user_manual/dm00231744.pdf
매뉴얼을 보면... 사용자 LED인 LD3는 PB3에 연결되어 있군요...
그러면 아래의 기존 예제에서, LED_BUILTIN 을 PB3 으로 바꿔 줍시다... 이제 -> 버튼을 눌러 업로드 하면 의도대로 동작합니다. ... 컴파일 시간이 분 단위로 걸릴만치 오래 걸리지만요 (.....)
9. 하지만 이제 좀 더 멀쩡한 걸 하려면 어떻게 해야 할까요?
API 문서를 뒤질 차례죠.....
https://github.com/stm32duino/Arduino_Core_STM32/wiki
API 레퍼런스에 어떻게 쓰라고 친절하게 나와 있습니다.
혹은 아예 제조사에서 제공하는 예제를 뒤지는 방법도 있지요
https://github.com/stm32duino/STM32Examples/
즐거운 프로그래밍이 되시길 바랍니다.
저는 비록 기존에 쓰던 아두이노 보드가 급사해서 땜빵하느라 이걸 썼는데.....
컴파일 속도가 정말 끔찍하게 느립니다.... 확인된 코드를 재활용하는것만 아니었어도 이짓을 안 하는건데....