嵌入式开发学习日志41——stm32之SPI总线基本结构

在熟悉了I2C总线之后,让我们来看看stm32提供的另一种通信协议------SPI。

SPI意为串行外围接口,主要应用在EEPROM、FLASH、实时时钟、AD转换器等。由于SPI是一种高速的、全双工同步通信总线,并且在芯片上占据了极少的管脚,节省了更多的空间,所以越来越多芯片开始应用这种通信协议。

相比于I2C的两条通信线,SPI一般使用4条,三条作为SPI总线,一条用作CS片选。

三条总线分别是MISO、MOSI、SCLK。MISO是主设备输入/从设备输出引脚,可用于主机读入数据;MOSI是主设备输出/从设备输入引脚,用于主机输出数据;SCLK光从名字上看就与时钟信号有关,它被用于实现通信数据的同步,它由主机产生,决定了通信的速率。

就像I2C种所有从机和主机都共用一根SDA线一样,SPI中接入的所有设备也会共用上述的三根总线。

CS片选线则和上面三根线不同,每个从设备都会有一根独立的CS片选线连接到主机的引脚上,有多少设备就有多少根线,而片选线的功能就相当于I2C中的I2C寻址,也是用于主机对从设备的选择的。

如何选择呢?

当主机要选择从设备时,该从设备的CS信号线就会被设置为低电平,此时该从设备就被选中,也就是所谓的片选有效,当CS线的电平被拉高,那么就代表通信结束,原理十分简单易懂。

SPI也有属于自己的特点。由于是实现全双工通信,所以SPI可以做到同时接受和传输串行数据。同时类似于I2C中的停止信号,SPI也有自己的发送结束中断标志。此外,他还有写冲突与总线竞争等保护机制。

在了解完这些基本结构后,下一章将会详细叙说关于SPI的工作方式的内容。

相关推荐
光影少年1 天前
大屏页面,一次多个请求,请求加密导致 点击 全局时间选择器 时出现卡顿咋解决(面板收起会延迟1~2秒)
前端·javascript·vue.js·学习·前端框架·echarts·reactjs
sakiko_1 天前
UIKit学习笔记2-组件嵌套、滚动视图等
笔记·学习·objective-c·swift·uikit
知识分享小能手1 天前
R语言入门学习教程,从入门到精通,R语言类别比较数据可视化- 完整知识点与案例代码(4)
学习·信息可视化·r语言
星恒讯工业路由器1 天前
MCU+WiFi与CPU+WiFi模块区别
单片机·嵌入式硬件
LCMICRO-133108477461 天前
长芯微LD7940完全P2P替代AD7940,是一款14位、逐次逼近型模数转换器(ADC)
单片机·嵌入式硬件·fpga开发·硬件工程·dsp开发·模数转换器adc
蛋白界小百灵1 天前
纳米抗体技术全解析:从文库构建到亲和力成熟的关键策略
经验分享·科技·学习·健康医疗·业界资讯·卡梅德生物
我是发哥哈1 天前
主流AI框架生产环境性能对比:5大关键维度深度评测
大数据·人工智能·学习·机器学习·ai·chatgpt·ai-native
nashane1 天前
HarmonyOS 6学习:RCP远场通信流式返回实战——告别“一次性”数据阻塞
学习·华为·harmonyos
for_ever_love__1 天前
UI学习:UITableView的基本操作及折叠cell
学习·ui·ios
Alice-YUE1 天前
【JS高频八股】什么是闭包?
开发语言·javascript·笔记·学习