1回答

1收藏

【赚周年币】技术帖——Fireduino学习4:使用SPI总线驱动5110...

#线上活动 #线上活动 2661 人阅读 | 1 人回复 | 2016-12-08

本帖最后由 wudianjun2001 于 2016-12-8 10:41 编辑

    上篇文章讲的是使用普通IO口驱动5110显示屏,这次使用板卡的SPI总线来驱动。

SerialPeripheral Interface(SPI)
       SPI是串行外设接口(SerialPeripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,在主芯片的管脚上主要占用四根线。
MOSI– 主设备数据输出,从设备数据输入;
MISO– 主设备数据输入,从设备数据输出;
SCLK– 时钟信号,由主设备产生;
SS – 从设备使能信号,由主设备控制
      其中MOSI/MISO/SCLK三根线实现全双工的通信,简单高效了,由于器件的寻址通过一个SS片选脚来指定,当连接多台SPI设备时,需要多个片选信号。
      SCLK提供时钟脉冲,MOSI,MISO则基于此脉冲完成数据传输。数据输出通过 MOSI线,数据在时钟上升沿/下降沿时改变,在紧接着的下降沿/上升沿被读取。完成一位数据传输,输入也使用同样原理。这样,在至少8次时钟的改变(上沿和下沿为一次),就可以完成8位数据的传输。
      SS线是用于一根使能线,特别是接多个外围设备的时候,可以通过控制SS线,对不同的外围设备进行通信

写一个程序关于SPI必须注意的问题有:
1. 字节的传输是从最高位(MSB)传输,还是从最低位(LSB)传输呢?这是由SPI.setBitOrder()函数进行设置的。
2. 当数据不传输时,时钟线是高还是低?
3. 触发方式是上升沿触发还是下降沿触发呢?这个由SPI.setDataMode()函数进行设置。
4.SPI运行的速度是多快呢?这个由SPI.setClockDivider()函数进行设置

板卡的SPI对应的引脚

硬件连接

程序部分在上次的基础上稍微改动下就可以了,引脚定义部分程序

SPI发送一个字节数据函数

系统初始化部分,这里去掉了不用的IO口初始化,增加了SPI的初始化

显示效果
源代码
fire.rar (6.49 KB, 下载次数: 23)



评分

参与人数 1 +10 收起 理由
loveeeboard + 10

查看全部评分

分享到:
回复

使用道具 举报

回答|共 1 个

倒序浏览

沙发

guiyi

发表于 2016-12-22 17:17:54 | 只看该作者

给力啊 我也得准备一个屏幕~
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条