当前位置:网站首页>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
边栏推荐
- PowerPivot - DAX (first time)
- Notes on beagleboneblack
- Force deduction brush question - 98 Validate binary search tree
- 01 基础入门-概念名词
- 【云原生与5G】微服务加持5G核心网
- BeagleBoneBlack 上手记
- 持续测试(CT)实战经验分享
- OceanBase社区版之OBD方式部署方式单机安装
- What happened to the kernel after malloc() was transferred? Attached malloc () and free () implementation source
- 5. 無線體內納米網:十大“可行嗎?”問題
猜你喜欢
Rhcsa Road
Le lancement du jupyter ne répond pas après l'installation d'Anaconda
01 基础入门-概念名词
HMS Core 机器学习服务打造同传翻译新“声”态,AI让国际交流更顺畅
小孩子學什麼編程?
[network planning] Chapter 3 data link layer (4) LAN, Ethernet, WLAN, VLAN
枚举根据参数获取值
深度学习分类网络 -- ZFNet
爬虫(14) - Scrapy-Redis分布式爬虫(1) | 详解
Discussion on beegfs high availability mode
随机推荐
"Penalty kick" games
An East SMS login resurrection installation and deployment tutorial
Node.js: express + MySQL实现注册登录,身份认证
golang的超时处理使用技巧
BUUCTF---Reverse---easyre
Unity making plug-ins
Unity load AB package
Tencent byte Alibaba Xiaomi jd.com offer got a soft hand, and the teacher said it was great
Initial experience of addresssanitizer Technology
Database specific interpretation of paradigm
How to handle the timeout of golang
Rhcsa Road
Enumeration gets values based on parameters
Special topic of rotor position estimation of permanent magnet synchronous motor -- Summary of position estimation of fundamental wave model
腾讯字节等大厂面试真题汇总,网易架构师深入讲解Android开发
[network planning] Chapter 3 data link layer (4) LAN, Ethernet, WLAN, VLAN
永磁同步电机转子位置估算专题 —— 基波模型类位置估算概要
Poj3617 best cow line
【GET-4】
Anaconda安裝後Jupyter launch 沒反應&網頁打開運行沒執行