当前位置:网站首页>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
边栏推荐
- 2022年6月语音合成(TTS)和语音识别(ASR)论文月报
- AsyncHandler
- 枚举根据参数获取值
- mod_ WSGI + pymssql path SQL server seat
- 【每周一坑】信息加密 +【解答】正整数分解质因数
- Force deduction brush question - 98 Validate binary search tree
- Wechat applet common collection
- Leetcode question 448 Find all missing numbers in the array
- How does kubernetes support stateful applications through statefulset? (07)
- Error analysis ~csdn rebound shell error
猜你喜欢
Tencent architects first, 2022 Android interview written examination summary

设计你的安全架构OKR

【计网】第三章 数据链路层(3)信道划分介质访问控制

SQL injection 2

Ideas and methods of system and application monitoring

How does kubernetes support stateful applications through statefulset? (07)

Leetcode question 283 Move zero

22-07-05 upload of qiniu cloud storage pictures and user avatars

2022年6月语音合成(TTS)和语音识别(ASR)论文月报

OceanBase社区版之OBD方式部署方式单机安装
随机推荐
Unity makes AB package
8086指令码汇总表(表格)
夏志刚介绍
【Yann LeCun点赞B站UP主使用Minecraft制作的红石神经网络】
方法关键字Deprecated,ExternalProcName,Final,ForceGenerate
永磁同步电机转子位置估算专题 —— 基波模型与转子位置角
Monthly report of speech synthesis (TTS) and speech recognition (ASR) papers in June 2022
5. Wireless in vivo nano network: top ten "feasible?" problem
Ideas and methods of system and application monitoring
02 basic introduction - data package expansion
Deep learning classification network -- zfnet
棋盘左上角到右下角方案数(2)
Qinglong panel white screen one key repair
【每周一坑】输出三角形
String长度限制?
Discussion on beegfs high availability mode
Tips for web development: skillfully use ThreadLocal to avoid layer by layer value transmission
Unity making plug-ins
Rhcsa Road
Wonderful coding [hexadecimal conversion]