OLED滚动显示汉字(1)

一、实验任务

理解OLED屏显和汉字点阵编码原理,使用STM32F103的SPI或IIC接口实现以下功能:

  1. 显示自己的学号和姓名;
  2. 显示AHT20的温度和湿度;
  3. 上下或左右的滑动显示长字符,比如“Hello,欢迎来到******物联网205实训室!”或者一段歌词或诗词(最好使用硬件刷屏模式)。

功能(1)(2)见前面的文章,本篇文章实现功能(3)

二、OLED滚动指令

参考文章:
http://www.51hei.com/bbs/dpj-180145-1.html

1、水平左右移动
 OLED\_WR\_Byte(0x2E,OLED_CMD);        //关闭滚动
        OLED\_WR\_Byte(0x26,OLED_CMD);        //水平向左或者右滚动 26/27
        OLED\_WR\_Byte(0x00,OLED_CMD);        //虚拟字节
        OLED\_WR\_Byte(0x00,OLED_CMD);        //起始页 0
        OLED\_WR\_Byte(0x07,OLED_CMD);        //滚动时间间隔
        OLED\_WR\_Byte(0x07,OLED_CMD);        //终止页 7
        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);        //水平垂直和水平滚动左右 29/2a
        OLED\_WR\_Byte(0x00,OLED_CMD);        //虚拟字节
        OLED\_WR\_Byte(0x00,OLED_CMD);        //起始页 0
        OLED\_WR\_Byte(0x07,OLED_CMD);        //滚动时间间隔
        OLED\_WR\_Byte(0x07,OLED_CMD);        //终止页 1
        OLED\_WR\_Byte(0x01,OLED_CMD);        //垂直滚动偏移量
        OLED\_WR\_Byte(0x2F,OLED_CMD);        //开启滚动


垂直滚动偏移量=0时,就只有水平左右移了。
通过设置起始页 终止页 被设置的区域就垂直和水平滚动,,其余的区域就只有垂直滚动

3、设置滚动区域
OLED\_WR\_Byte(0x2e,OLED_CMD);        //关闭滚动
        OLED\_WR\_Byte(0x29,OLED_CMD);        //水平垂直和水平滚动左右 29/2a
        OLED\_WR\_Byte(0x00,OLED_CMD);        //虚拟字节
        OLED\_WR\_Byte(0x00,OLED_CMD);        //起始页 0
        OLED\_WR\_Byte(0x07,OLED_CMD);        //滚动时间间隔
        OLED\_WR\_Byte(0x07,OLED_CMD);        //终止页 1
        OLED\_WR\_Byte(0x01,OLED_CMD);        //垂直滚动偏移量

三、程序编写

int main(void)
{	
	delay\_init();	    	       //延时函数初始化 
	NVIC\_Configuration(); 	   //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 
	OLED\_Init();			         //初始化OLED 
	OLED\_Clear(0);             //清屏(全黑)
	OLED\_WR\_Byte(0x2E,OLED_CMD);        //关闭滚动
    OLED\_WR\_Byte(0x27,OLED_CMD);        //水平向左或者右滚动 26/27
    OLED\_WR\_Byte(0x00,OLED_CMD);        //虚拟字节
	OLED\_WR\_Byte(0x00,OLED_CMD);        //起始页 0
	OLED\_WR\_Byte(0x07,OLED_CMD);        //滚动时间间隔
	OLED\_WR\_Byte(0x07,OLED_CMD);        //终止页 8
	OLED\_WR\_Byte(0x00,OLED_CMD);        //虚拟字节
	OLED\_WR\_Byte(0xFF,OLED_CMD);        //虚拟字节
	TEST\_MainPage();
	OLED\_WR\_Byte(0x2F,OLED_CMD);        //开启滚动
	while(1) 
	{	
		
	}
}

其中OLED_WR_Byte(0x2F,OLED_CMD) 的内容:

void TEST\_MainPage(void)
{	

	GUI\_ShowCHinese(10,20,16,"好好学习嵌入式",1);
	delay\_ms(500);		
	delay\_ms(500);
}

GUI_ShowCHinese()函数中的内容:

void GUI\_ShowCHinese(u8 x,u8 y,u8 hsize,u8 \*str,u8 mode)
{ 
	while(\*str!='\0')
	{
		if(hsize == 16)
		{
			GUI\_ShowFont16(x,y,str,mode);
		}
		else if(hsize == 24)
		{
			GUI\_ShowFont24(x,y,str,mode);
		}
		else if(hsize == 32)
		{
			GUI\_ShowFont32(x,y,str,mode);
		}
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数嵌入式工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

![img](https://img-blog.csdnimg.cn/img_convert/c63832bd8478e53ed3c3e92cd9b52587.png)

![img](https://img-blog.csdnimg.cn/img_convert/d96c911a6e9757f7eb8591730ab2e161.jpeg)

![img](https://img-blog.csdnimg.cn/img_convert/2b1de188c3d420d684edf27c18ccaedd.png)

 **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**

![img](https://img-blog.csdnimg.cn/img_convert/7c6103f0ab1b4b3fdfbfe045a0e76ce1.png)

![img](https://img-blog.csdnimg.cn/img_convert/79fd15281d0598d2b427a6b685e033d6.png)

 

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)**

<img src="https://img-community.csdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" />



# 最后

**资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~**

**你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!**

ty.csdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" />



# 最后

**资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~**

**你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!**

**[更多资料点击此处获qu!!](https://bbs.csdn.net/topics/618376385)**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值