屏幕型号
中景园电子 0.96 寸 OLED 模块,7针SPI通讯,驱动芯片SSD1306
引脚对应
D0 <----> SCLK SPI时钟引脚
D1 <----> MOSI SPI数据引脚
DC <----> DC Data/Command 选择引脚
CS <----> CS 片选
RES<----> RES 复位
需要使用SPI配置的引脚位D0、D1。其他三个引脚使用GPIO进行配置
32CUBE配置
SPI配置
屏幕无数据返回,选择Transmit Only Master
最高速度18M,72M时钟4分频
根据时序图可知高位在前,选择MSB First
GPIO配置
其余三个引脚使用GPIO配置
程序修改
/**
函 数:SPI发送一个字节
参 数:Byte 要发送的一个字节数据,范围:0x00~0xFF
返 回 值:无
/
void OLED_SPI_SendByte(uint8_t Byte)
{
// 注释掉发送函数,替换位HAL库的spi发送函数
HAL_SPI_Transmit(&hspi1, (uint8_t)&Byte, 1, HAL_MAX_DELAY);
--------------------------分隔符------------------------------------
// uint8_t i;
//
// /*循环8次,主机依次发送8位数据的每一位 */
// for (i = 0; i < 8; i++)
// {
// /使用掩码的方式取出Byte的指定一位数据并写入到D1线/
// /两个!的作用是,让所有非零的值变为1/
// OLED_W_D1(!!(Byte & (0x80 >> i)));
// OLED_W_D0(1); //拉高D0,从机在D0上升沿读取SDA
// OLED_W_D0(0); //拉低D0,主机开始发送下一位数据
// }
}
屏幕正常可以工作,如有错误,欢迎批评指正
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/JD_JOE/article/details/143962800
|