打印
[开发工具]

STM32CUBE配置硬件SPI驱动oled学习记录

[复制链接]
208|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2024-11-28 16:50 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
屏幕型号
中景园电子 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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2028

主题

15904

帖子

14

粉丝