嵌入式开发学习日志42——stm32之SPI工作方式

在很久很久之前......

上一章对SPI的基本结构进行了介绍,而从这一章开始,就该了解SPI的四种工作方式了。

SPI的工作方式主要由输出时钟极性(CPOL)以及时钟相位(CPHA)决定,这两个因素互相搭配就成为了SPI常见的四种工作方式。

首先来看看CPOL时钟极性。它总共有两种取值------0和1,当CPOL=0时,串行同步时钟的空闲状态处于低电平,当CPOL=1时,空闲状态就会保持在高电平。

由于开始时空闲状态的电平并不相同,所以输出时钟的第一和第二跳变沿的规定也有所差异。当CPOL=0时,由于开始的空闲状态时钟处于低电平,所以之后跳变为高电平的上升沿就被称作第一边沿,而当高电平再次变为低电平时,下降沿就会作为第二边沿。当CPOL=1时,两种边沿的规定大不一样,第一边沿变为了下降沿,而第二边沿变为了上升沿。

有了第一边沿和第二边沿的规定,接下来就由时钟相位来决定到底取哪一个进行数据采集。

时钟相位CPHA也有两种取值。当CPHA=0时,串行同步时钟的第一边沿就会被采集数据,而当CPHA=1时,串行同步时钟的第二边沿就会被采集数据。

因此简单地进行两两搭配后,SPI的工作方式也就呼之欲出了。

当CPOL=0,CPHA=0时,同步时钟就会取上升沿进行数据的采集;当CPOK=0,CPHA=1时,同步时钟取下降沿进行数据采集,这两种分别被称为00和01模式。当CPOL=1,CPHA=0时,同步时钟会采集下降沿的数据,当CPOL=1,CPHA=1时,上升沿数据会被采集,此时这两种模式被称为10和11模式。

以上就是SPI简单的工作方式。

stm32提供了I2C和SPI两种不同的通信总线,那么两者究竟有何区别,有没有哪一方能被另一方代替呢?下一章会进行两者的比较并给出结论。

相关推荐
阿蒙Amon8 小时前
TypeScript学习-第10章:模块与命名空间
学习·ubuntu·typescript
AI绘画哇哒哒8 小时前
【干货收藏】深度解析AI Agent框架:设计原理+主流选型+项目实操,一站式学习指南
人工智能·学习·ai·程序员·大模型·产品经理·转行
BackCatK Chen8 小时前
第 8 篇:TMC2240 电机正反转实现|DIR 引脚控制 + 代码优化(稳定不抖动)
stm32·单片机·嵌入式硬件·保姆级教程·电机正反转·tmc2240·dir引脚控制
戌中横9 小时前
JavaScript——预解析
前端·javascript·学习
星马梦缘9 小时前
EDA彩灯电路绘制
单片机·嵌入式硬件·物联网·pcb·eda·嘉立创
●VON9 小时前
React Native for OpenHarmony:2048 小游戏的开发与跨平台适配实践
javascript·学习·react native·react.js·von
ZH15455891319 小时前
Flutter for OpenHarmony Python学习助手实战:自动化脚本开发的实现
python·学习·flutter
xcLeigh10 小时前
Python入门:Python3 requests模块全面学习教程
开发语言·python·学习·模块·python3·requests
xcLeigh10 小时前
Python入门:Python3 statistics模块全面学习教程
开发语言·python·学习·模块·python3·statistics
GHL28427109010 小时前
分析式AI学习
人工智能·学习·ai编程