STM32标准库开发—硬件SPI外设

SPI外设简介

在这里插入图片描述

SPI1与SPI2所挂载的总线位置不一样,所以时钟频率也不一样,SPI2挂载在APB1时钟频率为36MHZ是SPI1的一半
I2S是一种音频传输协议,适用于STM32大容量产品
一般来说串口发送数据时是低位先行,SPI通信是高位先行

SPI框图

在这里插入图片描述

  • 发送缓冲区TDR,接收缓冲区RDR。当我们要传输一批数据时,写入数据到TDR,TDR 的值会自动根据移位寄存器的情况移入数据。当TXE置为1时表示TDR为空,我们可以将数据及时的写入TDR,移位寄存器的数据又会被移出去。当移出完成时,输入的数据也被置换到移位寄存器,此时移位寄存器的数据又会整体的移入RDR。此时RXNE被置为1,表示RDR里有数据。我们要即使的读取RDR里的数据并且软件置为0,否则数据将会被覆盖。
SPI主模式全双工连续传输【不推荐】

在这里插入图片描述
使用复杂,但是传输快。

  • 当有数据放置到TDR时,TXE置为0表示数据正在移动到移位寄存器,当TXE置为1时此时TDR为空,立马移入下一个数据。当移位寄存器完成数据的置换并且移除到RDR时,此时才能将TDR的数据移入到移位寄存器,如此往复
  • 当RXNE为1时,代表接收到数据已经放到RDR上,此时要尽快的读出,并且软件清0
  • 我们可以很明显的看到,这个发送和接收的顺序很不规则,首先是发送数据一再发送数据二然后才接收数据一,对于代码编写不友好
SPI非连续传输【推荐】

在这里插入图片描述
使用简单,但是传输效率低。

  • 当有数据放置到TDR时,TXE置为0表示数据正在移动到移位寄存器,当TXE置为1时此时TDR为空,不需要立马移入下一个数据,而是等到数据置换完成并且等待一段时间后才放入新的数据到TDR。
  • 我们可以对比看出这么做的目的就是为了能够发送一个数据,接收一个数据,这样顺序的发收程序更为容易理解,但是损失了很多性能。

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

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

相关文章

C/C++ 测试Qt官网的模拟时钟示例

操作系统:UOS20专业版 qt环境安装:apt-get install qtcreator(会自动安装QtCreator编辑器及相关环境,新版qt似乎不再提供安装包) qt版本:qt5.11 官网示例: Analog Clock(Qt6.6版本的…

BOOT电路

本质:BOOT电路本质上是单片机的引脚 作用:BOOT电路的作用是用于确定单片机的启动模式 使用方法:在单片机上电或者复位时给BOOT管脚设置为指定电平即可将单片机设置为指定启动模式。 原理:单片机上电或复位后会先启动内部晶振&a…

【Go语言】Go语言中的数组

Go语言中的数组 1 数组的初始化和定义 在 Go 语言中,数组是固定长度的、同一类型的数据集合。数组中包含的每个数据项被称为数组元素,一个数组包含的元素个数被称为数组的长度。 在 Go 语言中,你可以通过 [] 来标识数组类型,但…

【IO流】字符流练习(拷贝、文件加密、修改文件数据)

字符流练习 练习1:文件夹拷贝1.1 需求1.2 代码实现1.3 输出结果 练习2:文件加密与解密2.1 需求2.2 代码实现2.3 输出结果 练习3:修改文件数据(常规方法)3.1 需求3.2 代码实现3.3 输出结果 练习4:修改文件数…

YOLO目标检测——斑马线目标检测数据集【含对应voc、coco和yolo三种格式标签】

实际项目应用:自动驾驶系统、智能交通监控、行人保护系统、辅助驾驶功能数据集说明:真实场景的高质量图片数据,数据场景丰富标签说明:使用lableimg标注软件标注,标注框质量高,含voc(xml)、coco(json)和yolo…

Window系统安装USB Redirector结合cpolar实现远程访问本地USB设备

文章目录 前言1. 安装下载软件1.1 内网安装使用USB Redirector1.2 下载安装cpolar内网穿透 2. 完成USB Redirector服务端和客户端映射连接3. 设置固定的公网地址 前言 USB Redirector是一款方便易用的USB设备共享服务应用程序,它提供了共享和访问本地或互联网上的U…

aiohttp 目录遍历漏洞(CVE-2024-23334)

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

MSSQL渗透测试

目录 mssql数据库连接提权至服务器权限 拿到目标的IP地址,我们先对IP地址进行信息收集,收集信息资产,同时使用nmap对IP地址进行扫描 nmap -sC -sV IP从扫描的结果中,我们能知道目标服务器是windows操作系统,使用的是m…

iOS群控软件功能分析与代码分享!

随着移动互联网的迅猛发展,iOS设备作为市场上一大主流平台,其应用开发和管理越来越受到开发者和企业的重视,iOS群控软件,作为一种能够批量控制、管理和监控iOS设备的工具,逐渐展现出其强大的实用价值。 本文将详细分析…

Redis的高性能之道

前言:做码农这么多年,我也读过很多开源软件或者框架的源码,在我看来,Redis是我看过写得最优美、最像一件艺术品的软件,正如Redis之父自己说的那样,他宁愿以一个糟糕的艺术家身份而不是一名好程序员被别人记…

CrossOver2024电脑虚拟机软件详细介绍概述

CrossOver是由CodeWeavers开发的一款系统兼容软件,它能够在Mac和Linux操作系统上直接运行Windows应用程序,而无需创建或启动完整的Windows虚拟机。CrossOver通过模拟Windows应用程序所需的运行环境,实现了跨平台的无缝集成和高效运行。 Cross…

免费的Git图形界面工具sourceTree介绍

阅读本文同时请参阅-----代码库管理工具Git介绍 sourceTree是一款免费的Git图形界面工具,它简化了Git的使用过程,使得开发者可以更加方便地下载代码、更新代码、提交代码和处理冲突。下面我将详细介绍如何使用sourceTree进行这些操作。 1.下载和…

非线性优化-高斯牛顿法

在SLAM领域,后端多采用基于非线性优化的方法,来优化位姿和地图点,其中高斯牛顿法的使用频率很高。 求解高斯牛顿法的核心公式: 其中 f 是误差函数,J是误差关于待优化变量的雅可比矩阵。 其中H为海森矩阵&#xff08…

雷赛控制卡的扩展IO在雷赛软件里连不上是什么问题

雷赛控制卡的扩展IO在雷赛软件里连不上是什么问题 解决: 要拨码的,拨了码,记得断电

Redis之一: 简介及环境安装搭建

什么是NoSQL? NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。 NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据&#xf…

Sentinel实战(待完善)

目录 服务雪崩 什么是服务雪崩 服务不可用原因 解决方案 技术选型对比 Sentinel 介绍 优点 核心概念 资源 规则 代码实战 API实现 SentinelResource注解埋点实现 服务雪崩 什么是服务雪崩 在服务调用链路中, 服务提供者不可用, 导致服务调用者不可用, 间接让上上游…

【Java EE初阶二十六】简单的表白墙(二)

2. 后端服务器部分 2.1 服务器分析 2.2 代码编写 2.2.2 前端发起一个ajax请求 2.2.3 服务器读取上述请求,并计算出响应 服务器需要使用 jackson 读取到前端这里的数据,并且进行解析: 代码运行图: 2.2.4 回到前端代码,处理服务器返回的响应…

【网站项目】424学报稿件管理系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

【漏洞复现】大华智慧园区综合管理平台信息泄露漏洞

Nx01 产品简介 大华智慧园区综合管理平台是一款综合管理平台,具备园区运营、资源调配和智能服务等功能。该平台旨在协助优化园区资源分配,满足多元化的管理需求,同时通过提供智能服务,增强使用体验。 Nx02 漏洞描述 大华智慧园区…

Python多功能课堂点名器、抽签工具

一、问题缘起 去年,ChatGPT浪潮袭来,我懂简单的Python基础语法,又有一些点子,于是借助于人工智能问答工具,一步一步地制作了一个点名器,也可以用于抽签。当时,我已经设计好页面和基础的功能&am…