一文彻底带你搞懂SPI通信原+TFT彩屏控制原理
大家好,我是 杰哥编程
一文彻底带你搞懂SPI通信原+TFT彩屏控制原理
驱动ic : st7735s (搞不懂立刻改名杰弟编程)
代码已经放在我的gitee仓库了 记得下载 欢迎关注我的Gitee仓库:gitee.com/wrj12138/em… uart
1 首先来讲讲什么是uart?
通用串行异步通讯协议 UART没有时钟信号,无法控制何时发送数据, 也无法保证双发按照完全相同的速度接收数据 所以UART为每个字节添加额外的起始位和停止位, 帮助同步接收数据 且事先达成波特率共识 实现同步 如9600 115200
2 这是uart传输一个字节的时序图
Note:图中二进制11001010不等于16进制0x53 why?
因为串口通常会先发送最低有效位 大家可以看出串口什么缺点吗?
串口挺好 但缺点就是起始位和停止位要额外开销
spi
1 SPI是啥?
Note: SPI是“全双工”(具有单独的发送和接收线路),
因此可以在同一时间发送和接收数据,另外SPI的接收硬件可以是一个简单的移位寄存器。
这比异步串行通信所需的完整UART要简单得多,并且更加便宜
2 SPI通信协议
2. 主机时钟频率由单片机系统频率变化而来 你想要多少就多少 只要能配的到,
客机的频率来自于主机 但不是想要多少就多少 一般客机手册里会讲到可接受时钟频率范围
3. 如何多从机 靠第四条线 NSS ,就是个gpio输出口
每个客机有独立的NSS线 不重复
拉低哪个客机的CS 就跟哪个客机传输数据
目前先了解这种接法就行了
如果以后你们接触了一些行业
可能会有非常花式的接法
3 SPI优缺点
SPI-1.44TFT彩屏
1 TFT1.44SPI彩屏色彩
不扯那么多了 反正就是tft屏显示是彩色的 用的彩色编码方式是rgb565 和我们之前玩的lcd1602 i2c_oled画图写字编码是一样的 只是多了一些颜色深度而已。(RGB,CMY,HSV,HSL,Lab,YUV等等)
2 TFT1.44SPI彩屏引脚
3 TFT1.44SPI彩屏时序
这就是前面说的spi从机是有可接受范围的
看手册 这款彩屏的控制芯片叫ST7735S
大概看一下会看到有串行2线iic控制和3线spi控制 并行的8080控制和6800控制
我们直接看4线spi控制的内容 就能看到他的相关介绍
4 TFT彩屏控制
结语
然而这些都不用你们来做 厂家已经给出驱动库了 如果你们写linux驱动就是把这些函数和linux某些驱动框架进行融合就可以 如果是单片机裸机把底层接口对上就行
一篇SPI博客说的结语
(感谢这个博主这个ppt也是很大一部分借鉴他的) 底层建筑搭得好不好往往决定了上层建筑的好坏。之前已经实现在屏幕上画点,但是这仅仅是小小的实验而已,实际使用时我们通常用TFT来显示一些文字和图片,显示文字和图片就涉及到一些算法了,这一部分的好坏往往取决于设计者的软件水平,而作为嵌入式设计这也是最核心的部分,和硬件相关的部分仅仅是为上层建筑搭建根基,但是有根基还是不能够住人的,底层设计的好坏才是决定这个设计的总体价值。而一个优秀的嵌入式工程师总能够将整个系统的差异局部化和最小化,以提高系统的移植性去适应不同的底层建筑。当然市面上越来越多的嵌入式系统都将器件的差异集中到一部分,还有各种解决方案的推出为嵌入式开发者提供了更大的便利。