请选择 进入手机版 | 继续访问电脑版

基于SPI接口的OLED数据显示

[复制链接]
欣然自乐 发表于 2021-1-1 10:31:27 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
基于SPI/IIC接口的OLED数据显示



一、显示自己的学号和姓名;

1、首先在OLED官网. 下载相关步调

2、下载完成后解压并找到Demo_STM32文件夹下的0.96inch_OLED_Demo_STM32F103ZET6_Hardware_4-wire_SPI文件,打开此中的MDK工程文件

3、把开发板与OLED显屏模块毗连起来,毗连方式如下:

  cs不接。


4、在原有工程的底子上进行改动,首先把mian.c函数里除以下函数之外的函数注释掉
  1. TEST_Chinese();          //中文显示测试OLED_Clear(0)
复制代码
5、打开test.c文件,修改void TSET_Chinese函数如下:
  1. 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改为:
  1. #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循环中加入以下函数
  1. GUI_ShowCHinese(20,25,16,"»¶Ó­À´µ½ÖØÇ콻ͨ´óѧ",1);delay_ms(50);roll();
复制代码
2、在oled.c文件末端加上以下函数,以实现左右滑动
  1. //硬件滚动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数据显示.

来源:https://blog.csdn.net/Scorpio_L_/article/details/111771423
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )