嵌入式开发学习日志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两种不同的通信总线,那么两者究竟有何区别,有没有哪一方能被另一方代替呢?下一章会进行两者的比较并给出结论。

相关推荐
亿道电子Emdoor19 分钟前
【Altium】原理图中网络标签作用范围的设置
单片机·嵌入式硬件
我的xiaodoujiao20 分钟前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 39--生成 Allure测试报告
python·学习·测试工具·pytest
QiZhang | UESTC20 分钟前
学习日记day53
学习
qq_5710993521 分钟前
学习周报三十
学习
风行男孩27 分钟前
stm32基础学习——串口(USART)的基本使用
stm32·嵌入式硬件·学习
诺狞猫27 分钟前
SF32LB52-i2c驱动TM1650
学习·sifli
点灯小铭29 分钟前
基于单片机的多模式档位调节与过热保护风扇设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
却道天凉_好个秋31 分钟前
音视频学习(八十二):mp4v
学习·音视频·mp4v
好奇龙猫34 分钟前
【大学院-筆記試験練習:数据库(データベース問題訓練) と 软件工程(ソフトウェア)(6)】
学习
咚咚王者37 分钟前
人工智能之核心基础 机器学习 第十一章 无监督学习总结
人工智能·学习·机器学习