当前位置:网站首页>OLED屏幕的使用
OLED屏幕的使用
2022-07-06 12:24:00 【Kshine2017】
1. 0.96寸7引脚OLED屏幕
- 图中文字的缺失部分是因为手机拍照所致,实际是完整的文字。
- 参考链接:
https://wenku.baidu.com/view/eb67b928b91aa8114431b90d6c85ec3a87c28b86.html
https://wenku.baidu.com/view/11e968518d9951e79b89680203d8ce2f00666590.html - 引脚解释:
GND GND
VDD VCC 3.3V~5V
PE5 D0 CLK时钟信息(SCL) SPI_CLK
PE6 D1 数据端口(SDA) SPI_MOSI
PE7 RES 复位 普通IO
PE8 DC 数据/命令选择(D/C) 普通IO
PE9 CS 片选,低电平有效 SPI_CS

- 电阻的接选方式如下图,对应4线SPI。

- IO模拟4线SPI,驱动OLED
void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {
0};
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIOA->BSRR = OLED_DC_Pin;
GPIOA->BSRR = OLED_RES_Pin;
GPIOA->BSRR = GPIO_PIN_5;//SCK拉高
GPIOA->BSRR = GPIO_PIN_7;//拉高
//CS引脚直接接了GND
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Pin = OLED_DC_Pin|OLED_RES_Pin;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_7;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
#define MOSI_H GPIOA->BSRR = GPIO_PIN_7 //HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_SET) //
#define MOSI_L GPIOA->BRR = GPIO_PIN_7 //HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_RESET) //
#define SCK_H GPIOA->BSRR = GPIO_PIN_5 //HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET) //
#define SCK_L GPIOA->BRR = GPIO_PIN_5 //HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET) //
//#define MISO
#define NSS_H
#define NSS_L
void delayUS(uint32_t nus)
{
uint16_t i;
for(i=0;i<nus;i++)
{
}
}
//可以使用SPI的方式 HAL_SPI_Transmit(&hspi1,&data,1,1);
void My_SPI_Transmit(unsigned char data)
{
unsigned char i; //定义变量
for(i = 0; i < 8; i++) //循环8次
{
SCK_L;
delayUS(1);
if(data&0x80)
MOSI_H;
else
MOSI_L;
data<<=1;
delayUS(1);
SCK_H;
delayUS(1);
}
}
实测,单片机工作在72MHz的情况下,上述My_SPI_Transmit函数耗费的时间大概是76.4微秒。

驱动文件
https://download.csdn.net/download/Kshine2017/85519013
边栏推荐
- Ideas and methods of system and application monitoring
- Node. Js: express + MySQL realizes registration, login and identity authentication
- Force deduction brush question - 98 Validate binary search tree
- 8086 instruction code summary (table)
- 永磁同步电机转子位置估算专题 —— 基波模型类位置估算概要
- [cloud native and 5g] micro services support 5g core network
- Monthly report of speech synthesis (TTS) and speech recognition (ASR) papers in June 2022
- 腾讯T4架构师,android面试基础
- Appx code signing Guide
- Tips for web development: skillfully use ThreadLocal to avoid layer by layer value transmission
猜你喜欢

枚举根据参数获取值

Detailed introduction of distributed pressure measurement system VIII: basic introduction of akka actor model

Force deduction brush question - 98 Validate binary search tree

某东短信登录复活 安装部署教程

Monthly report of speech synthesis (TTS) and speech recognition (ASR) papers in June 2022

语音识别(ASR)论文优选:全球最大的中英混合开源数据TALCS: An Open-Source Mandarin-English Code-Switching Corpus and a Speech

深度学习分类网络 -- ZFNet

Digital triangle model acwing 1018 Minimum toll

Cesium 点击绘制圆形(动态绘制圆形)

棋盘左上角到右下角方案数(2)
随机推荐
【计网】第三章 数据链路层(4)局域网、以太网、无线局域网、VLAN
Enumeration gets values based on parameters
Tips for web development: skillfully use ThreadLocal to avoid layer by layer value transmission
爬虫(14) - Scrapy-Redis分布式爬虫(1) | 详解
AddressSanitizer 技术初体验
Tencent byte Alibaba Xiaomi jd.com offer got a soft hand, and the teacher said it was great
Redisson bug analysis
RT-Thread 组件 FinSH 使用时遇到的问题
Le lancement du jupyter ne répond pas après l'installation d'Anaconda
腾讯字节阿里小米京东大厂Offer拿到手软,老师讲的真棒
AsyncHandler
mod_ WSGI + pymssql path SQL server seat
Cesium 点击绘制圆形(动态绘制圆形)
Poj1149 pigs [maximum flow]
Guangzhou's first data security summit will open in Baiyun District
Introduction of Xia Zhigang
腾讯安卓开发面试,android开发的基础知识
JMeter server resource indicator monitoring (CPU, memory, etc.)
logstash高速入口
Crawler (14) - scrape redis distributed crawler (1) | detailed explanation