快速理解SPI通信协议(超简单)

2024-05-11 02:12

本文主要是介绍快速理解SPI通信协议(超简单),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SPI通信协议

  • 一、SPI协议介绍
  • 二、发送数据
  • 三、读数据
  • 注意

一、SPI协议介绍

SPI是一种全双工串行通信协议
他有四条线

SCLK(Serial Clock):时钟线

MOSI(Master Output, Slave Input):关键字母"O"Output,发送数据

MISO(Master Input, Slave Output):关键字母"I"Input,接受从机数据

SS(Slave Select):选择和谁通信

一主多从模式

  • SCLK(Serial Clock):这是SPI总线上的时钟信号线,用于同步数据传输。主设备通过控制SCLK线的时钟脉冲来驱动数据的传输。

在这里插入图片描述

  • SS(Slave Select):这是从设备的片选信号线,用于选择与主设备进行通信的特定从设备。主设备通过控制SS线的状态来选择要与之通信的从设备。
    在这里插入图片描述
  • MOSI(Master Output, Slave Input):这是主设备的输出信号线和从设备的输入信号线。主设备通过MOSI线将数据发送给从设备。

在这里插入图片描述

  • MISO(Master Input, Slave Output):这是主设备的输入信号线和从设备的输出信号线。从设备通过MISO线将数据发送给主设备。
    在这里插入图片描述

二、发送数据

0x01地址发送数据00001111
在这里插入图片描述

MOSI发送起始位操作码地址以及数据
从属设备在时钟上升沿采集数据
一共有四种采样模式分别是:空闲电平为高/低,同时采样沿变为上升/下降沿(具体用哪种需要查阅芯片数据手册)
在这里插入图片描述
在这里插入图片描述

三、读数据

同样要发送起始位,操作码,地址,还要提供时钟信号

读数据通过
MOSI发送起始位操作码地址
MISO就可以在相应的时序接收到数据
在这里插入图片描述

注意

  • 一次读写多少位数据没有标准,主要根据数据手册
  • 四种采样模式的选择也要根据数据手册决定

https://www.bilibili.com/video/BV1F54y1M7e7/

这篇关于快速理解SPI通信协议(超简单)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/978219

相关文章

乐鑫 Matter 技术体验日|快速落地 Matter 产品,引领智能家居生态新发展

随着 Matter 协议的推广和普及,智能家居行业正迎来新的发展机遇,众多厂商纷纷投身于 Matter 产品的研发与验证。然而,开发者普遍面临技术门槛高、认证流程繁琐、生产管理复杂等诸多挑战。  乐鑫信息科技 (688018.SH) 凭借深厚的研发实力与行业洞察力,推出了全面的 Matter 解决方案,包含基于乐鑫 SoC 的 Matter 硬件平台、基于开源 ESP-Matter SDK 的一

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

回调的简单理解

之前一直不太明白回调的用法,现在简单的理解下 就按这张slidingmenu来说,主界面为Activity界面,而旁边的菜单为fragment界面。1.现在通过主界面的slidingmenu按钮来点开旁边的菜单功能并且选中”区县“选项(到这里就可以理解为A类调用B类里面的c方法)。2.通过触发“区县”的选项使得主界面跳转到“区县”相关的新闻列表界面中(到这里就可以理解为B类调用A类中的d方法

自制的浏览器主页,可以是最简单的桌面应用,可以把它当成备忘录桌面应用

自制的浏览器主页,可以是最简单的桌面应用,可以把它当成备忘录桌面应用。如果你看不懂,请留言。 完整代码: <!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><ti

python实现最简单循环神经网络(RNNs)

Recurrent Neural Networks(RNNs) 的模型: 上图中红色部分是输入向量。文本、单词、数据都是输入,在网络里都以向量的形式进行表示。 绿色部分是隐藏向量。是加工处理过程。 蓝色部分是输出向量。 python代码表示如下: rnn = RNN()y = rnn.step(x) # x为输入向量,y为输出向量 RNNs神经网络由神经元组成, python

LVGL快速入门笔记

目录 一、基础知识 1. 基础对象(lv_obj) 2. 基础对象的大小(size) 3. 基础对象的位置(position) 3.1 直接设置方式 3.2 参照父对象对齐 3.3 获取位置 4. 基础对象的盒子模型(border-box) 5. 基础对象的样式(styles) 5.1 样式的状态和部分 5.1.1 对象可以处于以下状态States的组合: 5.1.2 对象

如何理解redis是单线程的

写在文章开头 在面试时我们经常会问到这样一道题 你刚刚说redis是单线程的,那你能不能告诉我它是如何基于单个线程完成指令接收与连接接入的? 这时候我们经常会得到沉默,所以对于这道题,笔者会直接通过3.0.0源码分析的角度来剖析一下redis单线程的设计与实现。 Hi,我是 sharkChili ,是个不断在硬核技术上作死的 java coder ,是 CSDN的博客专家 ,也是开源

MySQL理解-下载-安装

MySQL理解: mysql:是一种关系型数据库管理系统。 下载: 进入官网MySQLhttps://www.mysql.com/  找到download 滑动到最下方:有一个开源社区版的链接地址: 然后就下载完成了 安装: 双击: 一直next 一直next这一步: 一直next到这里: 等待加载完成: 一直下一步到这里

宝塔面板部署青龙面板教程【简单易上手】

首先,你得有一台部署了宝塔面板的服务器(自己用本地电脑也可以)。 宝塔面板部署自行百度一下,很简单,这里就不走流程了,官网版本就可以,无需开心版。 首先,打开宝塔面板的软件商店,找到下图这个软件(Docker管理器)安装,青龙面板还是安装在docker里,这里依赖宝塔面板安装和管理docker。 安装完成后,进入SSH终端管理,输入代码安装青龙面板。ssh可以直接宝塔里操作,也可以安装ssh连接

PyTorch模型_trace实战:深入理解与应用

pytorch使用trace模型 1、使用trace生成torchscript模型2、使用trace的模型预测 1、使用trace生成torchscript模型 def save_trace(model, input, save_path):traced_script_model = torch.jit.trace(model, input)<