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。
  • 我们可以对比看出这么做的目的就是为了能够发送一个数据,接收一个数据,这样顺序的发收程序更为容易理解,但是损失了很多性能。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

看完这篇爽文我终于学会了示波器(一)

大家好,我是砖一。 示波器是电子行业的工程师的“老熟人”了,有句老话说:电子工程师不能失去示波器,就像西方不能失去耶路撒冷,足以见得示波器的重要地位。今天讲解一下基础知识篇,话不多说,直…

Day 4.进程间的通信:管道和通信

进程间的通信 1.管道 2.信号 3.消息队列 4.共享内存 5.信号灯 6.套接字 1.管道(一次读4k,一共能读16次)64k 1.无名管道 无名管道只能用于具有亲缘关系的进程间的通信 pipe int pipe(int pipefd[2]); 功能:创建一个无名…

云原生高级第一次作业

目录 实验需求: 第一个实验步骤: openEuler 二进制方式安装MySQL 8.0.x 1.首先需要获取软件包 2.然后安装tar和xz格式可进行解压工具 3.接下来就是安装MySQL 4.配置环境变量 5.登入并修改密码 6.停止服务脚本 7.提供配置文件 8.进入/etc/my.cnf…

如何利用动态代理IP进行海外社媒推广?

动态代理IP,顾名思义,是一种可以动态变化的IP地址。与传统的静态IP地址不同,动态代理IP在每次网络请求时都能提供一个新的IP地址。在进行海外推广活动时,它的应用非常关键。 动态代理IP的工作原理基于一个庞大的IP地址池。当用户…

IPD(集成产品开发)—核心思想

企业发展到一定阶段就会遇到管理瓶颈,IPD流程是一种高度结构化的产品开发流程,它集成了业界很多优秀的产品开发方法论,像搭积木一样的组合成一种非常有效的流程。如果我们能根据企业的规模和行业特点,对全流程的IPD进行合适的裁剪…

代码随想录刷题笔记-Day25

1. 分割回文串 131. 分割回文串https://leetcode.cn/problems/palindrome-partitioning/ 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 示例 1&#xf…

端智能:面向手机计算环境的端云协同AI技术创新

近年来,随着移动端设备软硬件能力的进步,移动端的算力有了很大提升,同时面向移动端的机器学习框架和模型轻量化技术越来越成熟,端上的AI能力逐渐进入大众视野,端智能在电商领域也开始逐步走向规模化应用。通过持续探索…

动态规划之解码方法【LeetCode】

动态规划之解码方法 91. 解码方法解法1解法2 91. 解码方法 91. 解码方法 解法1 状态表示(这是最重要的):dp[i]表示以第i个字符为结尾,解码方法的总数。 状态转移方程(最难的):根据最近的一步来…

故障诊断 | 一文解决,PSO-BP粒子群算法优化BP神经网络模型的故障诊断(Matlab)

文章目录 效果一览文章概述模型描述源码设计参考资料效果一览 文章概述 故障诊断 | 一文解决,PSO-BP粒子群算法优化BP神经网络模型的故障诊断(Matlab) 粒子群优化算法(Particle Swarm Optimization, PSO)是一种群体智能优化算法,用于求解优化问题。BP神经网络是一种用于模…

【机器学习】线性回归模型(Linear Regression)

🌸博主主页:釉色清风🌸文章专栏:机器学习🌸今日语录:温柔的一半是知识,没有知识的涵养撑不起你想要的风骨。 ☘️0文章预览 本系列文章主要是根据吴恩达老师的机器学习课程以及自己的理解整合而成&#xf…

【MySQL】基本查询(表的增删改查)-- 详解

CRUD:Create(创建),Retrieve(读取),Update(更新),Delete(删除)。 一、Create insert [into] table_name [(column [, column] ...)] v…

2月28日做题总结(C/C++真题)

今天是2月28日,做题第三天。道阻且长,行则将至;行而不辍,则未来可期! 第一题 static char a[2]{1,2,3};说法是否正确? A---正确 B---错误 正确答案:B 解析:数组定义时&#xf…

Linux系统——Nginx拓展

目录 一、重写功能——rewrite 1.if 1.1 if 2. return 2.1状态码301和302的区别 301 302 3. set 4. break 5. rewrite 5.1 rewrite flag使用 5.2 flag说明 5.3举例 5.3.1访问 bj 跳转 beijing 5.3.2举例——break 5.3.3 http 转 https 5.3.4 break 与 last …

JavaScript 进阶03

编程思想 面向过程 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用 面向对象 面向对象是把事务分解成为一个个对象,然后由对象之间分工与合作。 在面向对象程序开发思想中&a…

kali安装ARL灯塔(docker)

1、root身份进入容器 ┌──(root㉿Kali)-[~/桌面] └─# su root ┌──(root㉿Kali)-[~/桌面] └─# docker 2、先更新再克隆 ┌──(root㉿Kali)-[~/桌面] └─# apt-get update …

如何在windows系统部署Lychee网站,并结合内网穿透打造个人云图床

文章目录 1.前言2. Lychee网站搭建2.1. Lychee下载和安装2.2 Lychee网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 图床作为图片集中存放的服务网站,可以看做是云存储的一部分,既可…

蓝桥杯-常用STL(三)

常用STL 🎈1.映射🎈2.map的基础使用🔭2.1引入库🔭2.2构造一个映射🔭2.3插入一对映射🔭2.4判断关键字是否存在🔭2.5遍历映射🔭2.6清空 🎈1.映射 🔎映射是指两个…

xss.haozi.me靶场练习

靶场地址alert(1) 1、第一关 输入在文本框里面,我们闭合前面的标签,中间的内容我们就可以随意写了 2、第二关 逃逸value的属性即可,这里使用点击事件触发xss 3、第三关 看代码,使用了正则表达式,去掉了所有的括号字…

Apache POl

介绍 Apache POl是一个处理Miscrosoft Ofice各种文件格式的开源项目。简单来说就是,我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作,一般情况下,POI都是用于操作 Excel 文件。 Apache POl 的应用场景 1.银行网银系统导出交易…

如何正确清除电脑的缓存垃圾?终于明白了!

前言 新的电脑总是好的,各种干净整洁无垃圾。 使用了一段时间之后,小伙伴们就会发现电脑C盘飙红了。然后就各种论坛查找清除电脑垃圾的方法。 电脑正常使用下,是会产生很多缓存的,所以C盘红了也很正常。除非电脑组装之后不开机&a…