当前位置:网站首页>Use of OLED screen
Use of OLED screen
2022-07-06 20:22:00 【Kshine2017】
1. 0.96 " 7 Pin OLED The screen
- The missing part of the text in the picture is caused by the mobile phone taking pictures , It's actually a complete text .
- Reference link :
https://wenku.baidu.com/view/eb67b928b91aa8114431b90d6c85ec3a87c28b86.html
https://wenku.baidu.com/view/11e968518d9951e79b89680203d8ce2f00666590.html - Pin interpretation :
GND GND
VDD VCC 3.3V~5V
PE5 D0 CLK Clock information (SCL) SPI_CLK
PE6 D1 Data port (SDA) SPI_MOSI
PE7 RES Reset Ordinary IO
PE8 DC data / Command to choose (D/C) Ordinary IO
PE9 CS Chip selection , Low level active SPI_CS

- The connection mode of resistance is shown in the following figure , Corresponding 4 Line SPI.

- IO simulation 4 Line SPI, drive 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 pull up
GPIOA->BSRR = GPIO_PIN_7;// pull up
//CS The pin is directly connected 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++)
{
}
}
// have access to SPI The way HAL_SPI_Transmit(&hspi1,&data,1,1);
void My_SPI_Transmit(unsigned char data)
{
unsigned char i; // Defining variables
for(i = 0; i < 8; i++) // loop 8 Time
{
SCK_L;
delayUS(1);
if(data&0x80)
MOSI_H;
else
MOSI_L;
data<<=1;
delayUS(1);
SCK_H;
delayUS(1);
}
}
Actually measured , MCU works in 72MHz Under the circumstances , Above My_SPI_Transmit The time of function is about 76.4 Microsecond .

Driver file
https://download.csdn.net/download/Kshine2017/85519013
边栏推荐
- 某东短信登录复活 安装部署教程
- B-杰哥的树(状压树形dp)
- Unity making plug-ins
- Standardized QCI characteristics
- String长度限制?
- rt-thread i2c 使用教程
- I've seen many tutorials, but I still can't write a program well. How can I break it?
- JMeter server resource indicator monitoring (CPU, memory, etc.)
- Cesium 两点之间的直线距离
- 01 basic introduction - concept nouns
猜你喜欢

Tencent byte Alibaba Xiaomi jd.com offer got a soft hand, and the teacher said it was great

BUUCTF---Reverse---easyre

Redisson bug analysis

Trends of "software" in robotics Engineering

【GET-4】

Anaconda安裝後Jupyter launch 沒反應&網頁打開運行沒執行

rt-thread i2c 使用教程

设计你的安全架构OKR

An East SMS login resurrection installation and deployment tutorial

Enumeration gets values based on parameters
随机推荐
微信小程序常用集合
腾讯字节等大厂面试真题汇总,网易架构师深入讲解Android开发
02 基础入门-数据包拓展
Poj1149 pigs [maximum flow]
[weekly pit] output triangle
Number of schemes from the upper left corner to the lower right corner of the chessboard (2)
系统与应用监控的思路和方法
An East SMS login resurrection installation and deployment tutorial
持续测试(CT)实战经验分享
Tencent T3 teaches you hand in hand. It's really delicious
Zoom with unity mouse wheel: zoom the camera closer or farther
电子游戏的核心原理
小孩子學什麼編程?
Unity makes AB package
Boder radius has four values, and boder radius exceeds four values
Speech recognition (ASR) paper selection: talcs: an open source Mandarin English code switching corps and a speech
BUUCTF---Reverse---easyre
PHP and excel phpexcel
【云原生与5G】微服务加持5G核心网
Web security - payload