2단계 인 U8G2 라이브러리 Arduino 보드에 포팅을 해보고자 한다.
더 나아가 ESP32에도 포팅이 가능하리라 본다.
ARM MCU 부분은 제가 이미 3-4년전에 포팅을 완료하였다.
차후 MCU 수업할때 맛보기로하고...
2단계도 크게 어려울게 없을 거 같다.
본인이 주로 사용하는 라이브러리이므로...
여기서 조금 수정하면 바로 ESP32에도 포팅할 수 있습니다.
이 부분은 ESP32 수업시간에 같이 해보도록 하겠습니다.
1. Arduino용 U8G2 LIB 설치 == ESP32에서도 적용
2. OLED 초기화
설치 후 예제코드를 불러와 실행하면 아무것도 실행안되고 빌드에러만 난다.
우리는 HW I2C IF이므로 다음과 같이 수정한다
둘중 하나일 것이다. 해당 라인을 찾아서 맨 앞 //을 제거한다.
// HW I2C == U8G2 용
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
// U8G2_R0 ~ U8G2_R3 까지 있습니다. 표시 방향이 상하좌우가 바꾸어 집니다.
// HW I2C == u8x8용
U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);
// SW I2C == U8G2용
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, 2, 3 /* reset=*/ );
3. 예제소스 실행
3.1 u8x8용 그래픽 표시
3.2 u8g2용 그래픽표시
3.3 u8g2 Logo 표시
전반적으로 초기화만 할줄 알며는 아주쉽게 잘 동작하는 거 같다.
처음에 초기화 할줄 몰라서 빌드에러는 냈지만....
하드웨어 IF에 맞게 설정만 해주면 u8x8 라이브러리이든, u8g2 라이브러리이든 잘 동작하는 걸 확인할 수 있다.
참고로 u8x8 라이브러리는 업그레이드가 중지되고, u8g2 라이브러리로 대체되었으나
u8g2 라이브러리에는 u8x8 라이브러리도 통합되어 지원한다.
아래링크 참고
https://github.com/olikraus/u8g2
https://github.com/olikraus/u8g2/wiki

