본문 바로가기

STM32

U8G2 그래픽 라이브러리를 STM32로 포팅하기 1부: 소개

반응형

 

U8G2 그래픽 라이브러리를 STM32로 포팅하기 1부: 소개 

 

U8G2는 광범위한 디스플레이 지원과 효율적인 렌더링을 제공하는 강력한 오픈 소스 그래픽 라이브러리로, STM32 마이크로컨트롤러로 모노크롬 OLED 및 LCD를 구동하는 데 이상적입니다. 이 가이드의 첫 번째 부분에서는 OLED 디스플레이로 STM32 하드웨어를 설정하고 U8G2 통합을 준비하기 위해 STM32CubeIDE 환경을 구성하는 필수 단계를 다룹니다. 

 

위대한 마인드 

단 것은 우리 몸에 염증을 만듭니다. 삶의 잔혹한 진실에 대해 배우세요.

이메일만 있으면 모든 자료를 다운받으실 수 있습니다.

내려받는 방법 자세히 보기 

 

 

Raspberry Pi 5 Quick Guide 

 

아두이노 우노 R4 WiFi 빠르게 시작하기 

 

Arduino IDE 2 Ultimate Guide 

 

아두이노 우노 R4 Minima 

 

 

 

 

이 가이드에서는 다음 내용을 다룹니다.

소개.

OLED 연결.

STM32CubeIDE 설정.

필요한 파일을 받으세요. 

1. 서론:

 

U8G2 그래픽 라이브러리는 임베디드 개발의 초석이 되었으며, 널리 사용되는 SSD1306 OLED부터 틈새시장 PCD8544 Nokia 스크린까지 다양한 컨트롤러에서 단색 OLED, LCD 및 전자종이 디스플레이를 구동하는 다재다능함으로 유명합니다. 가벼운 아키텍처, 풍부한 기능 세트(확장 가능한 글꼴, 기하학적 기본 요소, 효율적인 버퍼 관리 포함), 그리고 크로스 플랫폼 호환성은 STM32와 같이 리소스가 제한된 마이크로컨트롤러에서 세련된 그래픽 인터페이스를 개발하려는 개발자에게 이상적인 선택입니다. U8G2는 Arduino 생태계에서 널리 사용되고 있지만, STM32CubeIDE를 사용하여 전문적인 STM32 워크플로에 통합하는 과정은 아직 문서화가 덜 되어 있어 개발자가 명확한 지침 없이 복잡한 구성, 하드웨어 추상화 계층 및 툴체인의 세부 사항을 탐색해야 하는 경우가 많습니다.

 

이 가이드는 이러한 간극을 메우고, U8G2를 STM32CubeIDE(HAL/LL 라이브러리, 주변 장치 구성 도구 및 디버깅 기능을 결합한 STMicroelectronics의 공식 통합 개발 환경)로 포팅하는 체계적이고 단계별 접근 방식을 제공합니다. 1부에서는 기본적인 핵심 요소인 OLED 디스플레이(예: I2C 또는 SPI를 통한 SSD1306)를 STM32 마이크로컨트롤러와 인터페이싱하기 위한 하드웨어 설정 과 STM32CubeIDE 내 환경 준비에 중점을 둡니다. 올바른 U8G2 디스플레이 드라이버 선택, 통신 프로토콜(I2C/SPI) 구성, GPIO 핀 설정, U8G2 소스 파일을 CubeIDE 프로젝트에 통합하는 것과 같은 중요한 전제 조건을 명확하게 설명합니다. 이 섹션을 마치면 완전히 구성된 하드웨어 및 소프트웨어 환경을 갖추고 U8G2 기반 그래픽을 STM32 보드에 컴파일하고 배포할 수 있게 됩니다. 이는 이 시리즈의 후속 파트에서 고급 디스플레이 구현을 위한 토대를 마련합니다.

 

이 소개에서 다루는 주요 요소:

 

  1. U8G2의 중요성: STM32의 내장 그래픽, 디스플레이 지원 범위, 효율성에 대한 역할을 강조합니다.
  2. STM32CubeIDE 챌린지 : CubeIDE와 Arduino에서 U8G2에 대한 간소화된 문서가 부족하다는 점을 인정합니다.
  3. 제1부의 범위: 하드웨어 배선과 IDE 설정(코드 구현이 아님)에 중점을 둔다는 점을 명확하게 정의합니다.
  4. 실제 결과: 기대치 설정: 독자는 기능적인 하드웨어/IDE 기초를 완성하게 됩니다.
  5. 대상: Arduino에서 전문적인 STM32 워크플로로 전환하는 개발자를 대상으로 합니다.

 

2. OLED 연결: 

 

 

 

 

OLED 디스플레이를 STM32F411과 연결하기 위해 Vcc, GND, 그리고 SCL, SDA와 같은 I2C 통신 핀 네 개만 사용합니다. STM32F411과 함께 제공되는 STM32F411 마이크로컨트롤러에는 I2C1, I2C2, I2C3 등 세 개의 내장 I2C 모듈이 있습니다.

 

이 튜토리얼에서는 STM32F411의 I2C1 모듈을 사용하여 OLED와 통신합니다. I2C1 포트의 경우, PB9와 PB8(GPIOB)은 각각 SDA와 SCL 핀입니다. 이제 아래 그림과 같이 STM32F411과 OLED 디스플레이를 연결합니다.

 

STM32F411       SSD1306 OLED

PB8 /I 2C1 SCL
PB9 / I2C1 SDA
3.3V Vcc
GND GND

 

3. STM32CubeIDE 설정:

 

작업 공간을 선택한 후 STM32CubeIDE를 열고 다음과 같이 새 프로젝트를 만듭니다.

 

 

MCU를 선택하세요:

 

 

프로젝트 이름을 지정하세요:

 

 

 

프로젝트가 생성되면 STM32CubeMX 탭이 나타납니다.

 

그 후, PB8과 PB9를 I2C1 또는 I2C3로 설정합니다. 여기서는 다음과 같이 I2C1을 사용합니다.

 

 

 

 

다음으로, I2C를 다음과 같이 구성합니다.

속도를 빠른 모드로 설정하면 Clock이 400KHz로 설정됩니다.

 

 

 

 

구성은 여기까지입니다.

프로젝트를 저장하면 프로젝트가 생성됩니다.

 

4. 필요한 파일 얻기:

 

다음으로, 이 Github 저장소로 가서 다음과 같이 라이브러리를 다운로드하세요.

 

 

2부에서는 이를 IDE에 포함시키고 OLED 디스플레이와 인터페이스하도록 하겠습니다. 

 

STM32 개발 자료 많은 곳에서 참고 하였습니다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

더욱 좋은 정보를 제공하겠습니다.~ ^^