OLED显示屏滚动函数编写


根据OLED内置SSD1306芯片手册编写:SSD1780 (lcdwiki.com)

  • 水平滚动

image-20211124235144168

下列代码中 第 5 行 到 第 11 行 就是按照图中所设置的,这个顺序应当是不能变的。

//OLED水平滚动
void OLED_horizontal_scroll()
{
    
    
	OLED_WR_Byte(0x2E,OLED_CMD);        //关闭滚动
	OLED_WR_Byte(0x27,OLED_CMD);        //水平向右或者左滚动 26/27
	OLED_WR_Byte(0x00,OLED_CMD);        //A: 虚拟字节
	OLED_WR_Byte(0x00,OLED_CMD);        //B: 起始页 0
	OLED_WR_Byte(0x07,OLED_CMD);        //C: 滚动间隔 2帧
	OLED_WR_Byte(0x07,OLED_CMD);        //D: 终止页 7
	OLED_WR_Byte(0x00,OLED_CMD);        //E: 虚拟字节
	OLED_WR_Byte(0xFF,OLED_CMD);        //F: 虚拟字节
	OLED_WR_Byte(0x2F,OLED_CMD);        //开启滚动
}
  • 水平垂直滚动

image-20211124235927260

图中的红框部分说明了:没有可利用的垂直滚动函数

下列代码中 第 5 行 到 第 10 行 就是按照图中所设置的,这个顺序应当是不能变的。

//OLED水平垂直滚动
void OLED_vertical_scroll()
{
    
    
	OLED_WR_Byte(0x2E,OLED_CMD);        //关闭滚动
	OLED_WR_Byte(0x29,OLED_CMD);        //垂直和水平向右或左滚动 29/2a
	OLED_WR_Byte(0x00,OLED_CMD);        //A: 虚拟字节
	OLED_WR_Byte(0x00,OLED_CMD);        //B: 起始页 0
	OLED_WR_Byte(0x07,OLED_CMD);        //C: 滚动间隔 2帧
	OLED_WR_Byte(0x07,OLED_CMD);        //D: 终止页 7
	OLED_WR_Byte(0x01,OLED_CMD);        //E: 垂直滚动偏移量 1行
	OLED_WR_Byte(0x2F,OLED_CMD);        //开启滚动
}

上述代码只是给个参考,自己灵活配置即可。
具体查看手册。

猜你喜欢

转载自blog.csdn.net/qq_45945548/article/details/121528177