1.OLED显示屏是由许多个发光二级管组成,想要显示的信息可以通过代码让对应的发光二极管亮起。

通过简单的代码,分别按下key0键和key1键使显示屏显示welcome和hello

#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "bmp.h"
#include "key.h"

int main(void)
 {
      u8 b=0;
      u8 show[9]={'w','e','l','c','o','m','e','\0'};//定义字符串
        u8 show2[8]={'h','e','l','l','o','w','\0'};//定义字符串
        delay_init();                 
      KEY_Init(); // 使按键key0,key1上拉初始化.wake-up下拉初始化。

while(1)
     {
          OLED_ShowString(0,0,"h h");
              b=KEY_Scan(0);
         switch(b)
         { 
             case KEY0_PRES:
                 OLED_ShowString(0,3,show);
             delay_ms(5000);
             OLED_Clear();
             break;
             case KEY1_PRES:
                 OLED_ShowString(0,3,show2);
             delay_ms(5000);
             OLED_Clear();
             break;
             default:
             break;
       }
      }
 易错提醒:注意红字部分,由于商家在KEY_Scan(0)里的算法原因,即使没有用到wake-up键,任然要将wake-up设置成上拉输入。

函数调用的代码

//KEY_Init()

void KEY_Init(void)
{
    
    GPIO_InitTypeDef GPIO_InitStructure;  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);    
    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
    GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_5;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
     GPIO_Init(GPIOC, &GPIO_InitStructure);
    GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_15;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
     GPIO_Init(GPIOA, &GPIO_InitStructure);
    GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_0;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;     
    GPIO_Init(GPIOA, &GPIO_InitStructure);

//KEY_Scan

u8 KEY_Scan(u8 mode)
{     
    static u8 key_up=1;
    if(mode)key_up=1;    
    if(key_up&&(KEY0==0||KEY1==0||WK_UP==1))
    {
        delay_ms(10);
        key_up=0;
        if(KEY0==0)return KEY0_PRES;
        else if(KEY1==0)return KEY1_PRES;
        else if(WK_UP==1)return WKUP_PRES; 
    }else if(KEY0==1&&KEY1==1&&WK_UP==0)key_up=1;          
    return 0;

以下代码是杨辛卓学长的思路(我总结为这种思路可以连续按一个按键分别显示不同的信息)

while(1)
 {
 if(flag==1)
 {
OLED_ShowString(0,3,show);
 }
 else if(flag==2)
 {
 OLED_ShowString(0,3,"welcome");
 
 }
 else if(flag==3)
 {
 OLED_ShowString(0,0,"ZSL");
flag=0;
 }
t=KEY_Scan(0); //得到键值
switch(t)
{  
case KEY0_PRES:
OLED_Clear();
flag++;
break;
case KEY1_PRES:

break;
case WKUP_PRES:

break;
default:
break;
}

关于OLED显示屏的理解相关推荐

  1. 关于基于stm32的0.96寸oled显示屏的学习理解心得。

    关于基于stm32的0.96寸oled显示屏的学习理解心得. oled粗了解 如何理解OLED分辨率? 这里0.96寸OLED分辨率是12864;即OLED显示是128行64列; 但是由于OLED不能 ...

  2. STM32分别实现温湿度的采集和OLED显示屏显示数据

    目录 一.温湿度的采集 1.1了解I2C总线协议 1.2实现AHT20采集程序 二.OLED显示屏显示数据 2.1了解SPI 2.2使用OLED显示 2.2.1实验题目: 2.2.2实验过程 三.总结 ...

  3. 【mcuclub】0.96寸oled显示屏

    1.实物图 proteus8.9版本中没有OLED,通常用LCD12864模拟代替,而proteus8.13中有OLED,大家有兴趣可以下载测试 2.原理图 3.简介 OLED(Organic Lig ...

  4. 基于stm32的OLED显示屏显示

    文章目录 一.内容 二.关于SPI 三.关于OLED 四.功能实现 1)实验准备 2)代码准备 1.显示学号和姓名 2.显示AHT20的温度和湿度 3.滑动显示长字符 3)结果展示 五.参考内容 六. ...

  5. OLED显示屏与Arduino接口

    原文:https://circuitdigest.com/microcontroller-projects/arduino-ssd1306-oled-display 将SSD1306 OLED显示屏与 ...

  6. STM32--0.96寸OLED显示屏

    1.OLED屏幕介绍 OLED有机发光二极管又称为有机激光显示.OL ED显示技术具有自发光的特性.采用非常薄的有机材料涂层.和玻璃基板.当有电流通过时.这些有机材料就会发光.而且OLED显示屏幕可视 ...

  7. OLED显示屏I2C接口

    简介 本文将介绍两种不同尺寸的OLED显示屏:0.96寸和0.91寸.他们都是4引脚I2C接口的,如下图所示: 注:经过项目测试发现,本文介绍的驱动方式和代码也完全适用于 1.54寸SSD1309主控 ...

  8. stm32学习记录之0.96寸OLED显示屏配置

    目录 0.96寸oled屏概述 工程实现 GPIO初始化 SSD1306 初始化 启动与停止函数 各个功能函数 0.96寸oled屏概述 本次实验所用oled显示屏为黄蓝屏,即屏上1/4 部分为黄光, ...

  9. 关于STM32+OLED显示屏的简单应用

    文章目录 一.题目要求 二.SPI通信协议相关介绍 1. SPI 协议简介 2.STM32 的 SPI 特性及架构 3.STM32 的 SPI 外设简介 4. STM32 的 SPI 架构剖析 5. ...

最新文章

  1. Python学习小甲鱼视频003
  2. 大厂面试官必问的Mysql锁机制
  3. 黑客攻破网站涂鸦特效(强烈建议看看)
  4. VTK:Math之HomogeneousLeastSquares
  5. Python中关于XML-RPC原理
  6. [cocos2d]修改富文本文本和高度
  7. [转]Python 获取Windows管理员权限
  8. mysql if--else
  9. 小微风控模型汇总与企业征信报告指南
  10. Bee Framework_百度百科
  11. POJ 334932742151184020022503
  12. 集中器与本地通信模块的交互流程
  13. php web helloworld,webim_server.php
  14. dbf解析_DBF文件格式分析.doc
  15. 珍大户 认知世界的经济学 经济学核心原理 思维导图
  16. 基因序列 深度学习Deep Learning for Genomics: A Concise Overview
  17. 狂神学习系列04:MySQL+JDBC
  18. log4j输出多个自定义日志文件、动态配置多个日志文件
  19. 智能秤方案设计——蓝牙体脂秤PCBA方案
  20. 如何用记事本写Java程序

热门文章

  1. 红苹果IP代理软件 v6.2
  2. nfc android 7.0 apk,分屏/NFC一卡通 一加3安卓7.0氢OS体验
  3. 计算机剪切功能是哪个组合键,剪切快捷键是哪个 电脑剪切快捷键大全
  4. 开源版禅道的使用教程
  5. 如何给自己的网站添加 gitalk 评论系统
  6. GPT是什么,GPT-4是什么
  7. 最全Python函数总结和应用(超详细+建议收藏),基本所有内置函数,心得都在这了,踩的坑也在里面了,最后还有函数的魂
  8. 马云对话马斯克(全文):要警惕AI?该移民火星?如何更长寿?马化腾反对产业割裂和技术脱钩...
  9. pythoncharm怎么保存_pycharm软件实现设置自动保存操作
  10. 小程序瀑布流_小程序界面设计 | 太古可口可乐会员平台