关于OLED显示屏的理解
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显示屏的理解相关推荐
- 关于基于stm32的0.96寸oled显示屏的学习理解心得。
关于基于stm32的0.96寸oled显示屏的学习理解心得. oled粗了解 如何理解OLED分辨率? 这里0.96寸OLED分辨率是12864;即OLED显示是128行64列; 但是由于OLED不能 ...
- STM32分别实现温湿度的采集和OLED显示屏显示数据
目录 一.温湿度的采集 1.1了解I2C总线协议 1.2实现AHT20采集程序 二.OLED显示屏显示数据 2.1了解SPI 2.2使用OLED显示 2.2.1实验题目: 2.2.2实验过程 三.总结 ...
- 【mcuclub】0.96寸oled显示屏
1.实物图 proteus8.9版本中没有OLED,通常用LCD12864模拟代替,而proteus8.13中有OLED,大家有兴趣可以下载测试 2.原理图 3.简介 OLED(Organic Lig ...
- 基于stm32的OLED显示屏显示
文章目录 一.内容 二.关于SPI 三.关于OLED 四.功能实现 1)实验准备 2)代码准备 1.显示学号和姓名 2.显示AHT20的温度和湿度 3.滑动显示长字符 3)结果展示 五.参考内容 六. ...
- OLED显示屏与Arduino接口
原文:https://circuitdigest.com/microcontroller-projects/arduino-ssd1306-oled-display 将SSD1306 OLED显示屏与 ...
- STM32--0.96寸OLED显示屏
1.OLED屏幕介绍 OLED有机发光二极管又称为有机激光显示.OL ED显示技术具有自发光的特性.采用非常薄的有机材料涂层.和玻璃基板.当有电流通过时.这些有机材料就会发光.而且OLED显示屏幕可视 ...
- OLED显示屏I2C接口
简介 本文将介绍两种不同尺寸的OLED显示屏:0.96寸和0.91寸.他们都是4引脚I2C接口的,如下图所示: 注:经过项目测试发现,本文介绍的驱动方式和代码也完全适用于 1.54寸SSD1309主控 ...
- stm32学习记录之0.96寸OLED显示屏配置
目录 0.96寸oled屏概述 工程实现 GPIO初始化 SSD1306 初始化 启动与停止函数 各个功能函数 0.96寸oled屏概述 本次实验所用oled显示屏为黄蓝屏,即屏上1/4 部分为黄光, ...
- 关于STM32+OLED显示屏的简单应用
文章目录 一.题目要求 二.SPI通信协议相关介绍 1. SPI 协议简介 2.STM32 的 SPI 特性及架构 3.STM32 的 SPI 外设简介 4. STM32 的 SPI 架构剖析 5. ...
最新文章
- Python学习小甲鱼视频003
- 大厂面试官必问的Mysql锁机制
- 黑客攻破网站涂鸦特效(强烈建议看看)
- VTK:Math之HomogeneousLeastSquares
- Python中关于XML-RPC原理
- [cocos2d]修改富文本文本和高度
- [转]Python 获取Windows管理员权限
- mysql if--else
- 小微风控模型汇总与企业征信报告指南
- Bee Framework_百度百科
- POJ 334932742151184020022503
- 集中器与本地通信模块的交互流程
- php web helloworld,webim_server.php
- dbf解析_DBF文件格式分析.doc
- 珍大户 认知世界的经济学 经济学核心原理 思维导图
- 基因序列 深度学习Deep Learning for Genomics: A Concise Overview
- 狂神学习系列04:MySQL+JDBC
- log4j输出多个自定义日志文件、动态配置多个日志文件
- 智能秤方案设计——蓝牙体脂秤PCBA方案
- 如何用记事本写Java程序
热门文章
- 红苹果IP代理软件 v6.2
- nfc android 7.0 apk,分屏/NFC一卡通 一加3安卓7.0氢OS体验
- 计算机剪切功能是哪个组合键,剪切快捷键是哪个 电脑剪切快捷键大全
- 开源版禅道的使用教程
- 如何给自己的网站添加 gitalk 评论系统
- GPT是什么,GPT-4是什么
- 最全Python函数总结和应用(超详细+建议收藏),基本所有内置函数,心得都在这了,踩的坑也在里面了,最后还有函数的魂
- 马云对话马斯克(全文):要警惕AI?该移民火星?如何更长寿?马化腾反对产业割裂和技术脱钩...
- pythoncharm怎么保存_pycharm软件实现设置自动保存操作
- 小程序瀑布流_小程序界面设计 | 太古可口可乐会员平台