前言
本文旨在简单讲述树莓派pico``rp2040
的spi
使用。本文只是对微雪的示例程序进行简单讲解,实际还需要读者自己参照ST7735手册。事实上,如果看过我上一篇关于i2c的文章,spi就不太难了。
第一章 常用spi函数
如果您有看过我之前发的关于i2c
的文章,spi的使用也会比较容易。常用的api如下:
-
spi_init(spi端口,速率)
参数:
spi端口
:rp2040有两个spi端口,此处参数可以为spi0
或spi1
用于初始化spi,在生成项目时勾选SPI,生成的项目自带了这条代码。 -
spi_write_blocking(spi端口,数据,长度)
参数:
spi端口
:spi0
或spi1
发送数据
:该参数是个指针,参数一般为数组
长度
:参数发送数据
的长度 -
spi_read_blocking(spi端口,发送数据,接收数据,长度)
参数:
spi端口
:spi0
或spi1
发送数据
:在读取数据时发送的数据,一般为0
接收数据
:将读取的数据放到这个参数,这个参数一般为数组
长度
:参数接收数据
的长度
spi常用的api就上面三个,与i2c所用的api颇为相似。
需要注意:spi在传输或命令数据前,应当先将
/CS
端置1,传输或命令数据完成后将/CS
端置0,才能生效
第二章 0.96英寸LCD显示屏实例讲解
在淘宝上我们可以买到微雪出的一块自带显示屏的开发板。产品链接
打开微雪提供的屏幕示例程序,文件虽多,但其实并不复杂。我们首先看DEV_config.c
DEV_config.h
这两个文件。
在DEV_config.h
中,定义了使用到的引脚以及一些函数。其中#define LCD_BL_PIN 13
这行代码可能错了,根据原理图,此处13
应当改为25
。
在DEV_config.h
中声明了函数,在DEV_config.c
中具体实现了这些函数,这里主要是对引脚的定义,以及对官方所给函数的进一步封装。
在LCD_0in96.c
实现屏幕的初始化,以及实现一些功能。
最后找到LCD_0in96_test.c
,这里调用了LCD_0in96.c
里的一些函数。
总结
其实i2c与spi还是挺像的,了解其中一个,另一个就比较好懂了。
至此,了解i2c与spi的使用,做个简单的毕业设计是没什么问题的,也就是连上各种模块:)
本系列文章到此应该就结束了。