STM32 SPI

news2024/12/26 18:55:14

SPI介绍

SPI是Serial Pepheral interface缩写,串行外围设备接口。
SPI接口是一种高速的全双工同步通信总线,已经广泛应用在众多MCU、存储芯片、AD转换器和LCD之间。大部分STM32有3个SPI接口,本实验使用的是SPI1。

SPI同一时刻既能发送数据,也能接收数据。
在这里插入图片描述

SPI结构框图

在这里插入图片描述
在这里插入图片描述

SPI 的引脚信息:
MISO(Master In / Slave Out)主设备数据输入,从设备数据输出。
MOSI(Master Out / Slave In)主设备数据输出,从设备数据输入。
SCLK(Serial Clock)时钟信号,由主设备产生。
CS(Chip Select)从设备片选信号,由主设备产生。

SPI的工作原理:
在主机和从机都有一个串行移位寄存器,主机通过向它的SPI串行寄存器写入一个字节来发起一次传输。
串行移位寄存器通过MOSI信号线将字节传送给从机,从机也将自己的串行移位寄存器中的内容通过MISO信号线返回给主机。
这样,两个移位寄存器中的内容就被交换。

外设的写操作和读操作是同步完成的。
如果只是进行写操作,主机只需要忽略接收到的字节。
反之,若主机要读取从机的一个字节,就必须发送一个空字节引发从机传输。

SPI 的传输方式:SPI 总线具有三种传输方式:全双工、单工以及半双工传输方式。
全双工通信,就是在任何时刻,主机与从机之间都可以同时进行数据的发送和接收。
单工通信,就是在同一时刻,只有一个传输的方向,发送或者是接收。
半双工通信,就是在同一时刻,只能为一个方向传输数据。

SPI外设对应的引脚

STM32芯片有多个SPI外设,每个SPI外设输出的信号会到不同的GPIO口。

STM32F1有三个SPI。
在这里插入图片描述
在这里插入图片描述

SPI工作模式

STM32要与具有SPI接口的器件进行通信,就必须遵循SPI的通信协议。
每一种通信协议都有各自的读写数据时序,当然SPI也不例外。
SPI通信协议就具备4种工作模式。

CPOL,Clock Polarity,就是时钟极性,当主从机没有数据传输的时候即空闲状态,SCL线的电平状态。假如空闲状态是高电平,CPOL=1;若空闲状态时低电平,那么 CPOL = 0。

CPHA,Clock Phase,就是时钟相位。同步通信时,数据的变化和采样都是在时钟边沿上进行的,每一个时钟周期都会有上升沿和下降沿两个边沿,那么数据的变化和采样就分别安排在两个不同的边沿,由于数据在产生和到它稳定是需要一定的时间,假如我们在第1个边沿信号把数据输出了,从机只能从第个边沿信号去采样这个数据。

在这里插入图片描述

SPI相关寄存器

在这里插入图片描述

SPI相关HAL库驱动介绍

在这里插入图片描述
SPI外设相关结构体:
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1231399.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【23真题】很少见!第6题有点新颖!

今天分享的是23年太原理工大学801的信号与系统试题及解析。 本套试卷难度分析:该学校考察数字电路和信号与系统两部分,数字电路我没有知道,所以不知道难度。但是从信号部分来看,考察的知识点非常常见,对信号时域和频域…

建设城市排水管网监测系统的作用及功能说明

排水管网是由管道、井盖、降水口等组成的系统,用于将城市和建筑物内的污水和降水排放到污水处理厂或主干管道中。排水管网通常包括雨水管网和污水管网两部分。雨水管网用于收集雨水、路面洒水和冷却水等,而污水管网则负责收集排放到厕所、洗涤或过程中产…

Vue3 常用组件

一、Fragment组件 Vue2 的template 模板中必须要有一个根标签,而我们在Vue3 的模板中不需要使用根标签就能渲染,因为Vue3 在内部会将多个标签包含在一个Fragment 虚拟元素中。 好处就在于可以减少标签的层级,减小内存占用。 二、Teleport组…

23.11.19日总结(vue2和vue3的区别,项目中期总结)

经过昨天的中期答辩,其实可以看出来项目进度太慢了,现在是第十周,预计第十四周是终级答辩,在这段时间要把项目写完。 前端要加上一个未登录的拦截器,后端加上全局的异常处理。对于饿了么项目的商品建表,之前…

Java code auditing

1) FindBugs Checkstyle PMD 2) OWASP ZAP Burp Suite (XSS漏洞) 3) SQL注入

【ROS】RViz2源码分析(三):核心类VisualizerApp

【ROS】郭老二博文之:ROS目录 1、简述 VisualizerApp包含了三个主要的功能: QApplication:程序中主要调用app_->processEvents()来处理刷新界面,处理闪屏VisualizationFrame:窗口类都在此;RosClientAbstractionIface包含rclcpp::Node:代表ROS节点2、VisualizationF…

设计模式-迭代器模式-笔记

动机(Motivaton) 在软件构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,我们呢希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素;同时这种“透明遍历”也为“同一…

CXL崛起:2024启航,2025年开启新时代

在2019年,Intel主导联合多家阿里巴巴、Facebook(也就是改名后Meta)、谷歌、Dell、华为、思科、微软、HPE最初的八巨头,发布了新的互联协议CXL,全称Comupte Express Link。由于在服务器领域享有绝对领导地位,Intel一经号令&#xf…

Spring Cloud Stream实践

概述 不同中间件,有各自的使用方法,代码也不一样。 可以使用Spring Cloud Stream解耦,切换中间件时,不需要修改代码。实现方式为使用绑定层,绑定层对生产者和消费者提供统一的编码方式,需要连接不同的中间…

解决Python requests库中的重定向问题

目录 一、默认情况下,requests库如何处理重定向 二、手动处理重定向 三、处理多个重定向 四、注意事项 总结 在Python requests库中,处理重定向是一个常见的问题。默认情况下,requests库会自动处理重定向,并将最终的响应返回…

Vuex 组件间通讯

组件间通讯 Vuex https://vuex.vuejs.org/zh/ 基本原理 数据提取到父级 // index 文件 import Vue from vue import Vuex from "vuex" import tab from ./tab // 引入 modulesVue.use(Vuex) // 全局引入// 创建 Vuex 实例 export default new Vuex.Store({modules: …

力扣刷题-二叉树-二叉树最小深度

给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。(注意题意) 示例 1: 输入:root [3,9,20,null,null,15,7] 输出&#x…

Redis篇---第十篇

系列文章目录 文章目录 系列文章目录前言一、怎么提高缓存命中率?二、Redis 如何解决 key 冲突?三、Redis 报内存不足怎么处理? 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分…

基于变形卷积和注意机制的带钢表面缺陷快速检测网络DCAM-Net(论文阅读笔记)

原论文链接->DCAM-Net: A Rapid Detection Network for Strip Steel Surface Defects Based on Deformable Convolution and Attention Mechanism | IEEE Journals & Magazine | IEEE Xplore DCAM-Net: A Rapid Detection Network for Strip Steel Surface Defects Base…

下厨房网站月度最佳栏目菜谱数据获取及分析PLus

目录 概要 源数据获取 写Python代码爬取数据 Scala介绍与数据处理 1.Sacla介绍 2.Scala数据处理流程 数据可视化 最终大屏效果 小结 概要 本文的主题是获取下厨房网站月度最佳栏目近十年数据,最终进行数据清洗、处理后生成所需的数据库表,最终进…

【Java 进阶篇】Ajax 实现——JQuery 实现方式 `ajax()`

嗨,亲爱的读者们!欢迎来到这篇关于使用 jQuery 中的 ajax() 方法进行 Ajax 请求的博客。在前端开发中,jQuery 提供了简便而强大的工具,其中 ajax() 方法为我们处理异步请求提供了便捷的解决方案。无需手动创建 XMLHttpRequest 对象…

多目标应用:基于多目标灰狼优化算法MOGWO求解微电网多目标优化调度(MATLAB代码)

一、微网系统运行优化模型 微电网优化模型介绍: 微电网多目标优化调度模型简介_IT猿手的博客-CSDN博客 二、多目标灰狼优化算法MOGWO 多目标灰狼优化算法MOGWO简介: 三、多目标灰狼优化算法MOGWO求解微电网多目标优化调度 (1&#xff09…

GFS分布式系统

GFS分布式文件系统 gfs glusterFS 开源的分布式的文件系统 存储服务器 客户端 以及网络(NFS/samba)网关 传统式(老的)分布式元服务系统,元服务器保存存储节点的目录树信息 一旦元服务器故障,所有的存储节点…

Linux 串口应用编程

1 串口 API Linux串口通信: 在 Linux 系统中,操作设备的统一接口就是: open/ioctl/read/write 。 对于 UART ,又在 ioctl 之上封装了很多函数,主要是用来设置行规程。所以对于 UART ,编程的套路就是…

交易量原则,昂首资本一个比喻说清楚

即使你是刚进入交易市场的新手小白,也可能听过这句话:“当需求超过供给时,市场就会上涨。当供应超过需求时,市场就会下跌。”为了理解交易量的重要性,昂首资本来看看这句话背后的原则。 对于未接触过此类术语的读者&a…