머리말
많은 임베디드 시스템 개발자들에게 친숙한 MCU는 STMicro의 STM32 시리즈라고 할 수 있다. ARM Cortex Core를 사용하고 다양한 Peripheral이 안정적이라는 점이 중요한 이유이겠지만 무료로 사용할 수 있는 IDE 툴과 Flash 다운로드 툴 등 개발환경 구축에 비용이 들지 않는다는 점도 사용자의 선택을 받는데 도움이 되고 있다.
또한 많은 사용자들이 사용함으로써 참조할만한 예제들이 풍부하고 존재하고 있고 온라인에서 참조할만한 튜토리얼이나 블로그들이 존재한다는 것도 ST MCU를 선택하는 이유이다.
하지만 그만큼 많은 사용자들이 미세한 제어를 하는데 어려움을 겪고 있는 것도 사실이다.
이런 이유로 티웨어랩에서는 내부 개발과정에서 경험한 내용을 토대로 재사용 가능한 기능들을 라이브러리화하여 다음 개발 프로젝트에서 어려움을 반복하지 않고 개발기간을 단축할 수 있도록 하였고, 이 과정에서 개발된 STM32F4용 라이브러리인 libtwlab_stm32f4.a 를 공유해서 STM32F4를 사용하고자 하는 개발자들에게 도움이 되고자 한다.
기본 구성
libtwlab_stm32f4.a가 대상으로 하는 MCU는 STM32F4 계열이다.
기본 구조는 CPP로 되어 있는데, C가 아니라 CPP로 구성한 이유는 기본 Class로 최소한의 것을 구성하여 검증하고 필요에 따라서 해당 Class를 상속받아서 확장해서 사용하기 위한 것이며, 고객의 필요에 따라서 동일한 함수명을 사용하면서도 파라미터를 달리 하는 데 CPP의 오버로딩 기능이 효과적이기 때문이다.
사전 준비물
- STMCubeIDE v1.11.0 이상
- STMCubeProgrammer v2.12.0 이상
- STlink or Nucleo Board(다운로드용)
- twareLAB의 TW100PC-EVB
블로그 연재 구성
- libtwlab_stm32f4.a 구성
- STMCubeIDE에서 CPP 프로젝트 생성
- STMCubeIDE에 libtwlab_stm32f4.a 라이브러리 추가하기
- [예제1] GPIO Blinking
- [예제2] UART DMA 사용하여 Debug 메시지 출력하기
- [예제3] Timer 설정하기
- [예제4] User Task 및 User Timer 생성하기
- [예제5] 다중 GPIO 제어 Task 만들기
- [예제6] 다중 ADC 제어 Task 만들기
- [예제7] I2C로 EEPROM 제어하기
- [예제8] SPI DMA를 이용한 WIZnet W5500 사용하기
- [예제9] AT Command 처리 Task 만들기
- 그외
0개의 댓글