基于SPI/IIC接口的OLED数据显示
一、显示自己的学号和姓名;
1、首先在OLED官网. 下载相关程序
2、下载完成后解压并找到Demo_STM32文件夹下的0.96inch_OLED_Demo_STM32F103ZET6_Hardware_4-wire_SPI文件,打开其中的MDK工程文件
3、把开发板与OLED显屏模块连接起来,连接方式如下:
cs不接。
4、在原有工程的基础上进行改动,首先把mian.c函数里除以下函数之外的函数注释掉
TEST_Chinese(); //中文显示测试
OLED_Clear(0)
5、打开test.c文件,修改void TSET_Chinese函数如下:
void TEST_Chinese(void)
{
GUI_ShowString(45,0,"631807030116",8,1);
GUI_ShowCHinese(16,20,16,"烨烨",1);
}
6、打开指南者资料中开发软件的字模生成软件PCtoLCD2002
7、在1处输入想要显示的字,如果不调整字的位置,字是反的,所以按2->4的顺序翻转或反转字形,然后点生成字模
8、打开下载的OLED资料中HARDWARE->OLED文件,用记事本方式打开ioedfont文本
9、把刚刚生成的字模粘贴到以下结构体数组中
10、稍微修改一下,删掉大括号(引号或逗号都要英文模式),修改好后保存。
11、最后把程序编译成功后烧录到开发板中,最后的结果如下:
二、显示AHT20的温度和湿度;
1、把上一次关于AHT20温湿度采集的博客.中使用过的bsp_i2c.c、bsp_i2c.h、usart.c、usart…h文件添加到这次的工程的USER文件夹中
2、在MDK中选中USER文件,右键弹出选项,选择Add Existing Files to Group
3、选中刚添加的四个文件,点Add,Close
结果如下:
4、然后向HARDWARE文件夹加入stm32f10x_usart.c,该文件在STM32F10x_FWLib\src中,操作同上
5、添加温湿度和冒号的字模到oledfont.h文件中,方法同上
6、把工程的主函数main.c改为:
#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "gui.h"
#include "test.h"
#include "usart.h"
#include "bsp_i2c.h"
int main(void)
{
int *H,*T;
int H1=0,T1=0;
int a,b,c,d;
H=&H1;
T=&T1;
delay_init(); //ÑÓʱº¯Êý³õʼ»¯
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //ÉèÖÃNVICÖжϷÖ×é2:2λÇÀÕ¼ÓÅÏȼ¶£¬2λÏìÓ¦ÓÅÏȼ¶
OLED_Init(); //³õʼ»¯OLED
OLED_Clear(0); //ÇåÆÁ£¨È«ºÚ£©
uart_init(115200); //´®¿Ú³õʼ»¯Îª115200
IIC_Init();
while(1)
{
read_AHT20_once(T,H);
GUI_ShowCHinese(16,10,16,"ζÈ:",1);
a=*T/10;
b=*T%10;
GUI_ShowNum(60,10,a,2,16,1);
GUI_ShowString(80,10,".",16,1);
GUI_ShowNum(82,10,b,2,16,1);
GUI_ShowCHinese(16,30,16,"ʪ¶È:",1);
c=*H/10;
d=*H%10;
GUI_ShowNum(60,30,c,2,16,1);
GUI_ShowString(80,30,".",16,1);
GUI_ShowNum(82,30,d,2,16,1);
}
}
7、AHT20的连接方式与上文提到的博客内连接方式相同
三、上下或左右的滑动显示长字符
1、同一工程文件,把在主函数main.c的while循环中加入以下函数
GUI_ShowCHinese(20,25,16,"»¶ÓÀ´µ½ÖØÇ콻ͨ´óѧ",1);
delay_ms(50);
roll();
2、在oled.c文件末尾加上以下函数,以实现左右滑动
//硬件滚动
void roll(void)
{
OLED_WR_Byte(0x2F, OLED_CMD);
OLED_WR_Byte(0x27, OLED_CMD);
OLED_WR_Byte(0x00,OLED_CMD);
OLED_WR_Byte(0x00,OLED_CMD);
OLED_WR_Byte(0x07,OLED_CMD);
OLED_WR_Byte(0x2E,OLED_CMD);
while(1);
}
3、相关文字字模记得添加
4、编译通过后烧录到开发板,最终结果如下:
总结
以上就是本次OLED的数据显示内容,实践时在理解程序功能和添加调整字模过程有点困难和繁琐,但好歹做下来了,还行。
参考:
基于SPI接口的OLED数据显示.