当前位置:网站首页>OLED屏幕的使用
OLED屏幕的使用
2022-07-06 20:22: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
边栏推荐
- Cesium 点击绘制圆形(动态绘制圆形)
- A5000 vgpu display mode switching
- 02 basic introduction - data package expansion
- PowerPivot - DAX (first time)
- 【云原生与5G】微服务加持5G核心网
- 青龙面板白屏一键修复
- 系统与应用监控的思路和方法
- Tencent architects first, 2022 Android interview written examination summary
- Leetcode question 448 Find all missing numbers in the array
- Maximum likelihood estimation and cross entropy loss
猜你喜欢
Learn to punch in Web
OLED屏幕的使用
【每周一坑】计算100以内质数之和 +【解答】输出三角形
设计你的安全架构OKR
Tencent byte Alibaba Xiaomi jd.com offer got a soft hand, and the teacher said it was great
"Penalty kick" games
beegfs高可用模式探讨
腾讯架构师首发,2022Android面试笔试总结
Continuous test (CT) practical experience sharing
How does kubernetes support stateful applications through statefulset? (07)
随机推荐
系统与应用监控的思路和方法
Deep learning classification network -- zfnet
Tencent Android development interview, basic knowledge of Android Development
JVM_常见【面试题】
Quel genre de programmation les enfants apprennent - ils?
Recyclerview not call any Adapter method :onCreateViewHolder,onBindViewHolder,
BUUCTF---Reverse---easyre
【Yann LeCun点赞B站UP主使用Minecraft制作的红石神经网络】
Color is converted to tristimulus value (r/g/b) (dry stock)
Groovy basic syntax collation
Trends of "software" in robotics Engineering
Rhcsa Road
RT thread I2C tutorial
How does kubernetes support stateful applications through statefulset? (07)
OceanBase社区版之OBD方式部署方式单机安装
Introduction of Xia Zhigang
BeagleBoneBlack 上手记
Node. Js: express + MySQL realizes registration, login and identity authentication
String length limit?
Tencent T3 teaches you hand in hand. It's really delicious