接上一篇博客:基于STM32F103的OLED显示
一、了解OLED屏的滚屏命令
本OLED屏的芯片类型:SSD1306
1.水平左右移
OLED_WR_Byte(0x2E,OLED_CMD);
OLED_WR_Byte(0x26,OLED_CMD);
OLED_WR_Byte(0x00,OLED_CMD);
OLED_WR_Byte(0x00,OLED_CMD);
OLED_WR_Byte(0x07,OLED_CMD);
OLED_WR_Byte(0x07,OLED_CMD);
OLED_WR_Byte(0x00,OLED_CMD);
OLED_WR_Byte(0xFF,OLED_CMD);
OLED_WR_Byte(0x2F,OLED_CMD);
2.垂直和水平滚动
OLED_WR_Byte(0x2e,OLED_CMD);
OLED_WR_Byte(0x29,OLED_CMD);
OLED_WR_Byte(0x00,OLED_CMD);
OLED_WR_Byte(0x00,OLED_CMD);
OLED_WR_Byte(0x07,OLED_CMD);
OLED_WR_Byte(0x07,OLED_CMD);
OLED_WR_Byte(0x01,OLED_CMD);
OLED_WR_Byte(0x2F,OLED_CMD);
说明:设置前需要先发关闭滚动的指令2E,接着发滚动指令29(向右)或2A(向左)。紧接着发5条参数设置指令,用来设置持续水平滚动参数和决定滚动开始页,结束页,滚动速度和垂直滚动偏移的,最后才发开始滚屏指令2F。 注意:在发送开始滚屏(2F)前要先传输好显示数据,如果在滚屏的时候传输显示数据RAM中的内容可能被损坏,无法正常显示。
二、对汉字进行取模
1.使用PCtoLCD2002完美版对汉字取模
2.将汉字的16进制表示复制到代码中
三、修改示例代码并烧写程序
1.修改代码
test.c中的TEST_MainPage函数:
void TEST_MainPage(void)
{
GUI_ShowCHinese(10,20,16,"人生若只如初见",1);
delay_ms(1500);
delay_ms(1500);
}
main.c:
int main(void)
{
delay_init();
NVIC_Configuration();
OLED_Init();
OLED_Clear(0);
OLED_WR_Byte(0x2E,OLED_CMD);
OLED_WR_Byte(0x26,OLED_CMD);
OLED_WR_Byte(0x00,OLED_CMD);
OLED_WR_Byte(0x00,OLED_CMD);
OLED_WR_Byte(0x07,OLED_CMD);
OLED_WR_Byte(0x07,OLED_CMD);
OLED_WR_Byte(0x00,OLED_CMD);
OLED_WR_Byte(0xFF,OLED_CMD);
TEST_MainPage();
OLED_WR_Byte(0x2F,OLED_CMD);
}
2.烧写代码
结果:
四、总结
几乎所有的函数厂家已经写好了,只需在它的模板里将自己要显示的字符的中文的16进制添加上,在test.c中的TEST_MainPage函数中调用函数来显示自己想要显示的字符,在main函数里使用滚屏命令让字符滚动显示即可。
参考资料
https://blog.csdn.net/qq_43279579/article/details/111500137
|