打印

与 OLED 显示屏的 SPI 通信

[复制链接]
29|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
与 SSD1306 OLED 显示屏 进行通信时,主要操作包括发送命令和数据。显示内容通过 SPI 协议传输,命令与数据通常通过不同的控制字节标识。

初始化 OLED 显示屏
初始化 OLED 显示屏需要先发送一些控制命令来配置显示模式、对比度、启动显示等。

c
void OLED_Init(void)
{
    uint8_t init_cmds[] = {
        0xAE,   // Display OFF
        0xD5, 0x80,  // Set display clock divide ratio/oscillator frequency
        0xA8, 0x3F,  // Set multiplex ratio (height of display - 1)
        0xD3, 0x00,  // Set display offset
        0x40,         // Set display start line
        0xA1,         // Set segment remap
        0xC8,         // Set COM output scan direction
        0xDA, 0x12,   // Set COM pins hardware configuration
        0x81, 0x8F,   // Set contrast control
        0xA4,         // Entire display ON (resume to RAM content display)
        0xA6,         // Normal display (not inverted)
        0xAF          // Display ON
    };

    for (int i = 0; i < sizeof(init_cmds); i++) {
        SPI_Send(init_cmds[i]);
    }
}
发送显示数据
OLED 屏幕的数据通过发送数据模式传输,通常数据传输方式为逐个像素发送,按照行列进行更新。

c
void OLED_WriteData(uint8_t *data, uint16_t length)
{
    SPI_Send(0x40); // 数据模式指令
    for (uint16_t i = 0; i < length; i++) {
        SPI_Send(data[i]);  // 发送像素数据
    }
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

64

帖子

0

粉丝