1、简介
例程以STM32F103C8T6控制0.96寸OLED模块为例,该OLED模块采用SSD1306为主芯片,像素为 128*64,通讯方式为IIC,IIC 地址默认为 0x78,操作简单,该模块有一个稳压芯片,支持3.3V~5V电压供电,上电自动复位,自发光自由视角,低功耗等优势,显示效果如下图:
2.下载资源文件
完整例程下载:Gitee下载:STM32ExampleCode_01_OLED
3. IIC驱动文件
下载后打开参考目录\HARDWARE\IIC下的myiic.h文件,根据需要修改自己的引脚,由于这里使用的是CRL和CRH寄存器来配置的输入输出方向,所以我们在修改时需要注意寄存器的正确使用,示例中IIC的SDA引脚为PB0,SCL引脚为PB1。
4.OLED驱动
大家可以参考目录\HARDWARE\OLED下的oled.c和oled.h文件,驱动文件不建议大家修改,使用时直接拷贝到自己的驱动目录里。
在目录中还有oledbmp.h和oledfont.h文件,这两个文件是我们用来添加自己的显示信息的文件,oledbmp.h我们常用来存放位图的取模数组,oledfont.h中我们存放自己的字体取模数组,其中也包括汉字的位图的数组。
5.图片取模
在上面的介绍中我们可以看到OLED模块本身是不带字库的,需要用单片机进行保存,OLED驱动文件带英文字母、数字和符号的字模数组,汉字是需要什么字就添加什么字的字模,我们使用PCtoLCD2002软件进行生成。
1). 下载软件
2). 切换字符模式
3). 字模选项(格式设置)
4) 生成汉字字模
将上面生产的数组粘贴到oledfont.h文件中
5) 生成位图
a) 选择位图
这里推荐大家一个矢量图网站:阿里矢量图标库,在这里我们可以找到很多适合我们单片机屏幕显示使用的图标,而且是很多是免费商用的。
进入阿里矢量图标库,搜索自己想要的图标,例如“自动化”,然后选择合适的大小,点击PNG下载:
b) 将下载的文件用“画图”打开,并另存为BMP文件
c) 切换图形模式
d) 在软件中选择打开刚才保存的bmp文件
d) 修改格式设置
e) 点击生成
f) 将生成的数组放在oledbmp.h文件中
6) OLED显示测试
/*****************************************************************************************
* 函 数 名: OLED_Show_test()
* 功能说明: OLED显示测试
* 形 参:无
* 返 回 值: 无
*****************************************************************************************/
void OLED_Show_test(void)
{
OLED_ShowString(0,0,(unsigned char *)"hello,IOT",16); //显示英文:hello,IOT
//显示中文:趣制作
OLED_ShowCHinese(73,0,0);//趣
OLED_ShowCHinese(93,0,1);//制
OLED_ShowCHinese(113,0,2);//作
OLED_DrawBMP(0,2,0+32,6,autoMode); //显示位图:autoMode.bmp
OLED_ShowNum(40,3,1234,4,12); //显示数字1234
}
5 . 编译烧录运行
运行效果: