32-SPI通信
软件模拟的SPI和硬件实现SPI(SPI外设)
SPI(串行外设接口)协议
四根通信线:SCK(串行时钟线) MOSI(Master output slave input)主机输出从机输入 MISO(主机输入从机输出) SS(从机选择)有时也叫CS MOSI和MISO有时也叫DO和DI
同步,全双工
主机的波特率产生时钟信号,上升沿时,主机将最高位移出,放在MOSI线上。从机也将最高位移出,放在MISO线上。下降沿时,主机和从机都采样,将数据分别读入。 SPI发送数据的本质是主机和从机移位数据交换。
SPI时序
起始时序:SS由高到低 终止时序:SS由低到高
模式0:在SCK第一个边沿前,还会有一个提前移出数据
SPI外设
数据放入发送缓冲区,然后进入移位寄存器,当发送缓冲区空时,置TXE标志位为1,表示发送缓冲区空了,这时下一个数据就可以放入了。 移位寄存器中的数据从MOSI移出,同时交换的数据从MISO移入,移入的数据整体放到接收缓冲区中,此时置RXNE为1,表示接收缓冲区非空。检查到RXNE为1后,尽快将数据读出。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)