通过i2c协议点亮ssd1306
/*
* oled.h
*
* Created on: 2025年3月19日
* Author: youzaitingge
*/
#ifndef INC_OLED_H_
#define INC_OLED_H_
#include "gd32vw55x.h"
#define SSD1306_WIDTH 128
#define SSD1306_HEIGHT 64
#define SSD1306_I2C_ADDR 0x78 // SSD1306 I2C 地址
// **I2C 软件引脚定义**
#define OLED_I2C_SCL_PORT GPIOA
#define OLED_I2C_SCL_PIN GPIO_PIN_0
#define OLED_I2C_SDA_PORT GPIOA
#define OLED_I2C_SDA_PIN GPIO_PIN_1
// **GPIO 控制宏**
#define I2C_SCL_HIGH() gpio_bit_set(OLED_I2C_SCL_PORT, OLED_I2C_SCL_PIN)
#define I2C_SCL_LOW() gpio_bit_reset(OLED_I2C_SCL_PORT, OLED_I2C_SCL_PIN)
#define I2C_SDA_HIGH() gpio_bit_set(OLED_I2C_SDA_PORT, OLED_I2C_SDA_PIN)
#define I2C_SDA_LOW() gpio_bit_reset(OLED_I2C_SDA_PORT, OLED_I2C_SDA_PIN)
#define I2C_SDA_READ() gpio_input_bit_get(OLED_I2C_SDA_PORT, OLED_I2C_SDA_PIN)
// **初始化**
void ssd1306_init(void);
void ssd1306_clear(void);
void ssd1306_display_on(void);
void ssd1306_display_off(void);
void ssd1306_update_screen(void);
// **绘图**
void ssd1306_draw_pixel(uint8_t x, uint8_t y, uint8_t color);
void ssd1306_draw_char(uint8_t x, uint8_t y, char ch);
void ssd1306_draw_string(uint8_t x, uint8_t y, const char* str);
#endif /* INC_OLED_H_ */
