手里有一个oled屏幕,配这个CW32L低功耗单片机正好,心想要把它驱动起来。
这一款oled是ss1306,SSD1306是一款单片CMOS OLED/PLED驱动器,具有有机/聚合物发光控制器二极管点阵图形显示系统。它由128个段和64个公共部分组成。这个IC是为普通阴极型OLED面板设计。内置对比度控制、显示RAM和振荡器,减少了外部组件和功耗。它有256级亮度控制。数据/命令是从通用单片机通过硬件可选的6800/8000系列兼容并行接口发送,I2C接口或串行外围接口。它适用于许多紧凑型便携式应用程序,例如手机副显示屏、MP3播放器、计算器等。
SSD1306支持两种接口:I2C和SPI。I2C接口仅需要两条线,适合受限空间的应用;SPI接口速度较快,但需要四条线连接。如图是SPI接口的时序图:
首先需要建立一个ssd1306.c文件,用于编写各个驱动函数,然后建立一个ssd1306_init.c文件,用于初始化来用。整个工程如下:
与ssd1306通信采用spi方式,需要连接D0(作为时钟线),D1(作为信号线),DC(数据和命令选择引脚),RST(复位脚),再加上电源和地线。整个装置连接完后如图所示:
先编写引脚初始化函数,用于上述各个引脚的设置:
然后需要编写与屏幕通信的函数,向LCD写数据的函数如下:
接着就是在屏幕上画点画线的函数:
最后可以写汉字了:
主函数里面点亮并显示成功:
最后还是要感谢平台和厂家提供的试用机会,又一次锻炼了自己的能力。
|