52 lines
1.5 KiB
C
52 lines
1.5 KiB
C
#ifndef __SSD1306_OLED_H
|
|
#define __SSD1306_OLED_H
|
|
|
|
#include "main.h"
|
|
|
|
// OLED引脚定义
|
|
#define SSD1306_SDA_PORT OLED_SDA_GPIO_Port
|
|
#define SSD1306_SDA_PIN OLED_SDA_Pin
|
|
#define SSD1306_SCK_PORT OLDE_SCK_GPIO_Port
|
|
#define SSD1306_SCK_PIN OLDE_SCK_Pin
|
|
|
|
// I2C地址
|
|
#define SSD1306_I2C_ADDRESS 0x78
|
|
// OLED显示参数
|
|
#define SSD1306_WIDTH 128
|
|
#define SSD1306_HEIGHT 64
|
|
|
|
// OLED命令定义
|
|
#define SSD1306_CMD_DISPLAY_OFF 0xAE
|
|
#define SSD1306_CMD_DISPLAY_ON 0xAF
|
|
#define SSD1306_CMD_SET_CONTRAST 0x81
|
|
#define SSD1306_CMD_DISPLAY_ALL_ON_RESUME 0xA4
|
|
#define SSD1306_CMD_DISPLAY_ALL_ON 0xA5
|
|
#define SSD1306_CMD_NORMAL_DISPLAY 0xA6
|
|
#define SSD1306_CMD_INVERT_DISPLAY 0xA7
|
|
#define SSD1306_CMD_SET_DISPLAY_OFFSET 0xD3
|
|
#define SSD1306_CMD_SET_COM_PINS 0xDA
|
|
#define SSD1306_CMD_SET_VCOM_DETECT 0xDB
|
|
#define SSD1306_CMD_SET_DISPLAY_CLOCK_DIV 0xD5
|
|
#define SSD1306_CMD_SET_PRECHARGE 0xD9
|
|
#define SSD1306_CMD_SET_MULTIPLEX 0xA8
|
|
#define SSD1306_CMD_SET_LOW_COLUMN 0x00
|
|
#define SSD1306_CMD_SET_HIGH_COLUMN 0x10
|
|
#define SSD1306_CMD_SET_START_LINE 0x40
|
|
#define SSD1306_CMD_MEMORY_MODE 0x20
|
|
#define SSD1306_CMD_COLUMN_ADDR 0x21
|
|
#define SSD1306_CMD_PAGE_ADDR 0x22
|
|
#define SSD1306_CMD_COM_SCAN_INC 0xC0
|
|
#define SSD1306_CMD_COM_SCAN_DEC 0xC8
|
|
#define SSD1306_CMD_SEG_REMAP 0xA0
|
|
#define SSD1306_CMD_CHARGE_PUMP 0x8D
|
|
|
|
// 函数声明
|
|
void ssd1306_init(void);
|
|
void ssd1306_display_on(void);
|
|
void ssd1306_display_off(void);
|
|
void ssd1306_clear(void);
|
|
void ssd1306_draw_pixel(uint8_t x, uint8_t y, uint8_t color);
|
|
void ssd1306_update_screen(void);
|
|
|
|
#endif // __SSD1306_OLED_H
|