本文基于stm32 hal库,移植于安富莱例程 论坛地址:https://www.armbbs.cn/
移植
- 使用cubeMX配置好SPI、GPIO 网络标签与文件中一致,如下图所示。
SPI配置:
注意,OLED_RST
应为高电平,不然会导致屏幕不亮,最好在cubeMX配置时将其初始电平设置为高电平。
- 将源码文件添加到你的工程文件夹并在keil中添加字库文件夹fonts、OLED.C、OLED.h
📣我不知道怎么添加文件?请学习下面这篇文章。
使用
//主函数中添加头文件 #include "OLED.h" //---------------------------------------- /*初始化运行代码请添加在主函数中的while(1)循环之前,外设初始化之后*/ //------------初始化运行------------ OLED_InitHard(); /* 初始化OLED硬件 */ OLED_ClrScr(0x0); //清屏 /* 设置字体参数 */ FONT_T tFont12, tFont16; tFont16.usFontCode = FC_ST_16; /* 字体代码 16点阵 */ tFont16.usTextColor = 1; /* 字体颜色 0 或 1 */ tFont16.usBackColor = 0; /* 文字背景颜色 0 或 1 */ tFont16.usSpace = 0; /* 文字间距,单位 = 像素 */ tFont12.usFontCode = FC_ST_12; /* 字体代码 12点阵 */ tFont12.usTextColor = 1; /* 字体颜色 0 或 1 */ tFont12.usBackColor = 0; /* 文字背景颜色 0 或 1 */ tFont12.usSpace = 1; /* 文字间距,单位 = 像素 */ //-------------------------------------------------------------- /*每个花括号之间是一段示例*/ //--------------------使用示例------------- { tFont12.usTextColor = 0; /* 字体颜色 0 或 1 */ tFont12.usBackColor = 1; /* 文字背景颜色 0 或 1 */ OLED_ClrScr(0xFF); OLED_DispStr(5, 0, "《送孟浩然之广陵》", &tFont12); OLED_DispStr(0, 13, "故人西辞黄鹤楼,", &tFont12); OLED_DispStr(0, 26, "烟花三月下扬州。", &tFont12); OLED_DispStr(0, 39, "孤帆远影碧空尽,", &tFont12); OLED_DispStr(0, 52, "唯见长江天际流。", &tFont12); } { OLED_StartDraw(); //调用改函数,只刷新缓冲区,不送显示 OLED_ClrScr(0); OLED_DrawRect(0,0, 10,10,1); /* 在(0,0)坐标处绘制一个高10宽10的矩形 */ OLED_DrawRect(10,10, 20,30,1); /* 在(10,10)坐标处绘制一个高20宽30的矩形 */ OLED_DrawCircle(64,32,30,1); /* 在(64,32)绘制半径30的圆 */ OLED_DrawLine(127,0,0,63,1); /* 在(127,0) 和 (0,63) 之间绘制一条直线 */ OLED_EndDraw(); //调用改函数,将缓冲区中数据送显示 } OLED_printf(5,3,&tFont16,"oled test!");
更多API请自行测试学习,OLED.c
文件中有详细注释.