OLED可以用于低功耗的电子手表等显示,这里演示如何用rt-thread studio点亮OLED
新建工程
1、打开RT-Thread Studio,在菜单 文件->新建->RT-Thread项目
![image.png](//file.elecfans.com/web2/M00/8B/36/poYBAGPUpIaATijkAAJBI0Zu53M965.png)
2、按下图选择需要存放项目的文件夹:
![image.png](//file.elecfans.com/web2/M00/8B/BC/pYYBAGPUpTiAFCsRAAKXMQ1UVBs067.png)
3、输入项目名称、选择基于开发板创建工程,在下位列表里选择N32G45XVL-STB,点击完成创建工程。
![image.png](//file.elecfans.com/web2/M00/8B/BC/pYYBAGPUpbyAPZLUAASKDYr-K-s676.png)
![image.png](//file.elecfans.com/web2/M00/8B/BC/pYYBAGPUpfuASgm_AADYLxIX44Q393.png)
新建的工程如下:
![image.png](//file.elecfans.com/web2/M00/8B/37/poYBAGPUpiiAZclmAALq3tPINqM129.png)
配置SSD1306
1、双击RT-Thread Settings,打开配置
![image.png](//file.elecfans.com/web2/M00/8B/BC/pYYBAGPUpsqALAYxAAGy-Y2DssU445.png)
2、打开软件包配置中心
![image.png](//file.elecfans.com/web2/M00/8B/37/poYBAGPUp3CABLQmAASBwYhWP8A177.png)
3、在添加的包中右键出配置项,打开sample选项
![image.png](//file.elecfans.com/web2/M00/8B/37/poYBAGPUp_iAEgt9AAITrJQ_-0w598.png)
4、先择使能i2C驱动
![image.png](//file.elecfans.com/web2/M00/8B/37/poYBAGPUqL6AUWGUAAK_xACkbnk360.png)
5、关闭配置,并选择保存:
![image.png](//file.elecfans.com/web2/M00/8B/37/poYBAGPUqEWANgnFAANeDak6u0w309.png)
编译工程
显示编译成功。
![image.png](//file.elecfans.com/web2/M00/8B/37/poYBAGPUqlaACa1yAAVL-HKJo4s682.png)
安装SSD1306
根据初始化提示SCK 为21 SDA为23,查询drv_gpio.c得到SCK为PB6,SDA为PB7。依次接好线:
下载工程:
接下图下载程序
![image.png](//file.elecfans.com/web2/M00/8B/37/poYBAGPUqw-AOpyFAAVcoFE0YDA009.png)
打开终端
RT-Thread Studio提供了串口调试终端,按下图打开终端
![image.png](//file.elecfans.com/web2/M00/8B/37/poYBAGPUrAmAN-RkAAWmezuuPWU482.png)
重启后,终端打开印出开发欢迎的界面
![image.png](//file.elecfans.com/web2/M00/8B/BC/pYYBAGPUrC-AAOb2AACQ7TvznY8487.png)
运行测试OLED的程序
1、按TAB键,或者输入help显示模块:
![image.png](//file.elecfans.com/web2/M00/8B/BC/pYYBAGPUrL6AOypTAAVlf-DgQto855.png)
在终端里输入ssd1306_TestAll回车就可以看到OLED显示测试的程序了。
![1a755cdbac7676c3ebeea8642846a77.jpg](//file.elecfans.com/web2/M00/8B/BC/pYYBAGPUrYeAdri6AAJbigVF030520.jpg)
非常简单吧。
添加欢迎界面
在ssd1306_tests.c中的ssd1306_TestAll函数最后面添加自己的显示:
ssd1306_Fill(Black);
ssd1306_SetCursor(10, 0);
ssd1306_WriteString("HAPPY NEW YEAR", Font_7x10, White);
ssd1306_SetCursor(8, 16);
ssd1306_WriteString("N32G45VXL", Font_16x26, White);
ssd1306_SetCursor(10, 44);
ssd1306_WriteString("www.elecfans.com", Font_7x10, White);
ssd1306_UpdateScreen();
![a71e17f762805407d3436a81dee0da6.jpg](//file.elecfans.com/web2/M00/8B/37/poYBAGPUsfOAPUSIAAKK-llvDzU615.jpg)
|