当前位置:网站首页>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
边栏推荐
- Groovy基础语法整理
- 【云小课】EI第47课 MRS离线数据分析-通过Flink作业处理OBS数据
- Poj3617 best cow line
- 【每周一坑】输出三角形
- Rhcsa Road
- Special topic of rotor position estimation of permanent magnet synchronous motor -- Summary of position estimation of fundamental wave model
- Qinglong panel white screen one key repair
- Color is converted to tristimulus value (r/g/b) (dry stock)
- Unity writes a timer tool to start timing from the whole point. The format is: 00:00:00
- Monthly report of speech synthesis (TTS) and speech recognition (ASR) papers in June 2022
猜你喜欢

永磁同步电机转子位置估算专题 —— 基波模型与转子位置角

Continuous test (CT) practical experience sharing

Force deduction brush question - 98 Validate binary search tree

Boder radius has four values, and boder radius exceeds four values

Digital triangle model acwing 1018 Minimum toll

持续测试(CT)实战经验分享

beegfs高可用模式探讨

Event center parameter transfer, peer component value transfer method, brother component value transfer

OceanBase社区版之OBD方式部署方式单机安装

Node.js: express + MySQL实现注册登录,身份认证
随机推荐
Error analysis ~csdn rebound shell error
HMS core machine learning service creates a new "sound" state of simultaneous interpreting translation, and AI makes international exchanges smoother
Number of schemes from the upper left corner to the lower right corner of the chessboard (2)
A5000 vgpu display mode switching
RT-Thread 组件 FinSH 使用时遇到的问题
Node.js: express + MySQL实现注册登录,身份认证
【GET-4】
New generation garbage collector ZGC
Tips for web development: skillfully use ThreadLocal to avoid layer by layer value transmission
【云小课】EI第47课 MRS离线数据分析-通过Flink作业处理OBS数据
5. 无线体内纳米网:十大“可行吗?”问题
Is it difficult for small and micro enterprises to make accounts? Smart accounting gadget quick to use
棋盘左上角到右下角方案数(2)
OceanBase社区版之OBD方式部署方式单机安装
Cesium 两点之间的直线距离
Period compression filter
Rhcsa Road
小微企业难做账?智能代账小工具快用起来
[cloud lesson] EI lesson 47 Mrs offline data analysis - processing OBS data through Flink
02 basic introduction - data package expansion