ST/STM32F103C8

STM32F103C8 - I2C LCD(SSD1306)

engineer4ever 2025. 8. 8. 11:02

 

MCU
STM32F103(ST)
IDE
STM32CubeIDE
목표
I2C LCD(SSD1306)를 구동함

 

0. SSD1306

- SSD1306은 단일 칩 CMOS OLED/PLED 드라이버로, 유기/고분자 발광을 위한 컨트롤러

- OLED는 저전력 소비, 높은 대비, 선명한 이미지 품질로 알려져 있어 작은 전자 프로젝트, 웨어러블 기기 및 임베디드 시스템에 이상적

- 다이오드 도트 매트릭스 그래픽 디스플레이 시스템. 128개의 세그먼트와 64개의 공통으로 구성

- SSD 1306에는 256단계 밝기 제어, 디스플레이 RAM 및 오실레이터가 내장

- 일반적으로 다양한 크기로 제공되며, 0.96인치에서부터 더 큰 크기도 있음

- SSD1306 디스플레이를 프로젝트에서 사용하려면 I2C(Inter-Integrated Circuit) 사용하여 통신

 

- SSD1306 Datashet

 

1. STM32CubeIDE - CubeMX

- I2C2 Mode and Configuration : Disable → I2C

- Project - Generate Code


 

2. github에서 library 다운로드

https://github.com/afiskon/stm32-ssd1306

 

GitHub - afiskon/stm32-ssd1306: STM32 library for working with OLEDs based on SSD1306, SH1106, SH1107 and SSD1309, supports I2C

STM32 library for working with OLEDs based on SSD1306, SH1106, SH1107 and SSD1309, supports I2C and SPI - afiskon/stm32-ssd1306

github.com

 

- *.c는 프로젝트 폴더의 Core\Src 폴더 안에 넣음

- *.h는 프로젝트 폴더의 Core\Inc 폴더 안에 넣음

- Build Project 하면 자동으로 Compile 함

- ssd1306.c, ssd1306.h : ssd1306을 사용하기 위한 함수 모음

- ssd1306_fonts.c, ssd1306_fonts.h : 글자를 뿌리기 위한 폰트(크기별)

 

3. STM32CubeIDE - IDE

- main.c의 main() 수정

  /* USER CODE BEGIN 2 */
  ssd1306_Init();
  HAL_Delay(1000);

  ssd1306_SetCursor(0,0);
  ssd1306_WriteString("LINE1", Font_7x10, White);

  ssd1306_SetCursor(0,10);
  ssd1306_WriteString("LINE2", Font_7x10, White);

  ssd1306_SetCursor(0,20);
  ssd1306_WriteString("LINE3", Font_7x10, White);

  ssd1306_SetCursor(0,30);
  ssd1306_WriteString("LINE4", Font_7x10, White);

  ssd1306_SetCursor(0,40);
  ssd1306_WriteString("LINE5", Font_7x10, White);

  ssd1306_SetCursor(0,50);
  ssd1306_WriteString("LINE6", Font_7x10, White);

  ssd1306_UpdateScreen();
  /* USER CODE END 2 */
 

- 실행 결과

 

'ST > STM32F103C8' 카테고리의 다른 글

STM32F103C8 - RAM 48KB + bonus?  (0) 2025.08.08
STM32F103C8 - LL driver + ADC + DMA  (0) 2025.08.08
STM32F103C8 - 1cycle Time  (0) 2025.08.08
STM32F103C8 - I2C HAL driver 오류  (0) 2025.08.08
STM32F103C8 - ADC(DMA interrupt)  (1) 2025.08.08