工作记录1:spi外设--oled屏

2023-12-15 12:10:02

实习到转正工作一年,基本上干的都是外设移植主控上或者项目代码换主控移植,因为项目需求也有蓝牙的相关知识接触及应用,其中用到的iic和spi次数比较多,整理一下实用的东西分几篇文章写,目前没想好写多少。

以下几篇文章都是从刚入嵌入式的小白视角编写,表述可能有点白话还请见谅。

OLED

一般的oled有iic、spi两种连接方式。我拿到的是0.96寸7针的屏,因此拿这个举例,当然也有iic的,其他的博客上也写了很多,比spi的要清楚。

spi的实物连线的比iic的要混乱,oled屏的型号很多,找的博客也写的七七八八,没直接说清楚,我也是结合了百度和一些博主的说明理清哪些引脚的作用才连上。

下图是我手中的oled:

其中的DO,D1相当于时钟线和接收的数据线(SCK,MOSI)。

图中的oled除了正负极之外连线(包括D0,D1,RES,DC,CS)都大概写一下,

因为当时通过主控芯片的手册判断出和串口的RX/TX、iic的SCL/SDA有类似功能,所以能够连上,(oled屏作为从机,不需要MISO连接)

D0SCK(芯片内部的时钟)
D1MOSI
RES重置oled
DC/
CS片选线

以下贴的代码是剔除了移植主控所需的节点写的。

oled的初始化需要的是 CS,SCK,MOSI,DC设置成推挽输出。(其中的CS,SCK,MOSI应该在芯片的数据手册里面有写,另外的DC要自己设置),RES不用初始化,且RES的连线也自己定。

    //sck,cs,dc
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_7; 
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStructure);	

RES只有在清除屏幕或者初始化时候才用得到。

基本上连线结束之后就能够通过一般的oled代码进行移植操作

接下来继续整理

文章来源:https://blog.csdn.net/m0_58766702/article/details/134989560
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。