STM32 SPI学习

news2024/9/21 3:24:37

SPI

串行外设设备接口(Serial Peripheral Interface),是一种高速的,全双工,同步的通信总线。

在这里插入图片描述
SCK时钟信号由主机发出。
SPI接口主要应用在存储芯片。
在这里插入图片描述
在这里插入图片描述

  1. SPI相关引脚:MOSI(输出数据线)、MISO(输入数据线)、SCK(时钟)、NSS(片选)。
  2. 数据发送和接收:与缓冲区、移位寄存器以及引脚相关。
  3. 时钟信号:SPI时钟信号通过SPI_CR1寄存器配置。
  4. 主控制逻辑:涉及两个控制寄存器SPI_CR1/2用于配置SPI工作,SPI_SR用于查看工作状态。

使用软件管理NSS,硬件上的NSS引脚就可以另做他用,通过SSM、SSI来控制电平。主机NSS拉高,从机NSS低电平有效。

SPI外设对应的引脚

STM32芯片有多个SPI外设,每个SPI外设输出的信号会到不同的GPIO口。
STM32F1有三个SPI。
在这里插入图片描述
SPI属于边沿协议,IIC属于电平协议。
主机只向从机进行写操作,可以忽略接收到的从机数据。
主要要对从机进行读操作,需要发送一个空数据引发从机发送数据。

SPI工作模式

时钟极性(CPOL)没有数据传输时,时钟线的空闲状态电平。

  • 0:SCK在空闲状态保持低电平
  • 1:SCK在空闲状态保持高电平

时钟相位(CPHA)时钟线在第几个时钟边沿采样数据。

  • 0:SCK的第一边沿(奇数)进行数据位采样,数据在第一个时钟边沿锁存。
  • 1:SCK的第二边沿(偶数)进行数据位采样,数据在第二个时钟边沿锁存。

在这里插入图片描述

SPI相关寄存器

在这里插入图片描述
SPI_CR1
在这里插入图片描述
在这里插入图片描述
SPI_SR
在这里插入图片描述
在这里插入图片描述
SPI_DR
在这里插入图片描述

SPI相关HAL库驱动

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

NOR FLASH

FLASH是常用的用于存储数据的半导体器件,它具有容量大,可重复擦写,按“扇区/块”擦写,掉电后数据可继续保存的特性。

FLASH只能写0,不能写1,写1靠擦除。

FLASH主要有NOR Flash和NAND Flash两种类型,NOR和NAND是两种数字门电路。

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

NM25Q128

NM25Q128,串行闪存器件,属于NOR FLASH只的一种,容量为128Mb。擦写周期可达10W次,可以将数据保存达20年之久。

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

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

相关文章

myBatis报错:Parameter index out of range (3 > number of parameters, which is 2).

【问题描述】: 今天在写mybatis的动态判断语句时,出现报错信息:(报错信息从下往上看) Parameter index out of range (3 > number of parameters, which is 2). 我们在mapper.xml文件中写动态SQL&#x…

【Terraform学习】Terraform配置变量(Terraform配置语言学习)

配置变量 实验步骤 创建 EC2 IAM 角色 导航到IAM 在左侧菜单中,单击角色 。单击创建角色该按钮以创建新的 IAM 角色。 在创建角色部分,为角色选择可信实体类型: AWS 服务 使用案例:EC2 单击下一步 添加权限:现在&#xff0c…

Rviz2的自定义插件开发基础知识

1. 简介 Rviz中有不同类型的插件,每个插件都必须具有相应的基本类型,才能被RViz识别 plugin typebase typeDisplayrviz_common::DisplayPanelrviz_common::PanelToolrviz_common::ToolFrames transformation libraryrviz_common::transformation::Fram…

有哪些虚拟机好用?并且对电脑没有伤害

在当今数字化时代,虚拟化技术越来越受到人们的关注和使用。虚拟机作为一种强大的工具,可以在一台计算机上模拟多个独立的操作系统环境,为用户提供了灵活性和便利性。然而,有人担心使用虚拟机可能会对电脑造成损害,尤其…

多普勒气泡监测与分级方法

Ultrasound detection of vascular decompression bubbles the influence of new technology and considerations on bubble load 多普勒气泡检测方法: 听觉多普勒超声监测法视觉二维超声成像谐波超声成像(2的变种) 多普勒气泡分级方法&…

objectarx编译Debug版arx遇到的问题

错误一链接错误 1>pietdoginterface_s.lib(Msg.obj) : error LNK2001: 无法解析的外部符号 “class ATL::CTraceCategory ATL::atlTraceException” (?atlTraceExceptionATL3VCTraceCategory1A) 1>pietdoginterface_s.lib(Msg.obj) : error LNK2001: 无法解析的外部符号…

【洁洁送书第二期】Python机器学习:基于PyTorch和Scikit-Learn

前言 近年来,机器学习方法凭借其理解海量数据和自主决策的能力,已在医疗保健、 机器人、生物学、物理学、大众消费和互联网服务等行业得到了广泛的应用。自从AlexNet模型在2012年ImageNet大赛被提出以来,机器学习和深度学习迅猛发展&#xf…

Element-UI 10个技巧

el-scrollbar 滚动条 看到这个组件是不是有点陌生,陌生就对了,因为它从来没有出现在 element 官网上(估计是性能问题),但好东西怎么能藏着掖着,来上效果图。 是不是比原生的滚动条美观多了,使用…

【2】-第一个Locust脚本

创建&执行第一个locustfile.py 在ide中创建我们的loucst项目,并创建第一个测试脚本,代码如下 ## /mylocust/locustfiles/first_locustfile.py import os from locust import HttpUser, task# 继承locust的HttpUser类,这样我们就可以使用…

argo workflows archived 日志设置

由于工作需要配置argo workflows archived 归档日志,介绍一下大致步骤: 文章目录 1.没有设置前,归档日志是不能展示的2.编辑configmap3 配置数据库用户名和密码:4.把workflow这个pod删掉,让他重新生成一个解决用户权限问题 1.没有…

[VRTK4.0]将Unity输入系统与VRTKv4结合使用

学习目标: 展示了如何在Unity项目中设置Unity输入系统,以及如何导入输入系统Tilia包以支持VRTKTilia包与新的Unity输入系统操作一起工作。 流程: 步骤一: 首先我们需要再次检查项目设置是否具有新的Unity输入系统。通过Project S…

浅谈现代通信技术

目录 1.传统通信方法 2.传统通信方式的缺点 3.现代通信技术 4.现代通信技术给人类带来的福利 1.传统通信方法 传统通信方法指的是在数字化通信之前使用的传统的通信方式。以下是一些常见的传统通信方法: 1. 书信:通过邮件或快递等方式发送纸质信件。这…

JVM调优详解

SneakyThrowspublic static void main(String[] args) {HashMap hashMap new HashMap();ArrayList arrayList new ArrayList();Byte[] e new Byte[1024];while (true) {Thread.sleep(10);arrayList.add(e);}} java执行代码 C:\WINDOWS\System32>jps -l 26576 org/netbea…

0基础系列C++教程 从0开始 第三课

0基础系列C教程 从0开始 第三课来了! 这节课只是课后习题的解答 第四课讲变量 第二课课后习题 代码请自行写注释 写完后发在评论区 我会看的 习题代码: /*课后习题 不做注释 自行查看上节课的内容 题目:输出一下内容 114514 19191919 81…

前后端项目分离开发

问题说明: 开发人员同时负责前端和后端代码开发,分工不明确开发效率低前后端代码混合在一个工程中,不便于管理对开发人员要求高,人员招聘困难 解决方法: 前后端分离开发 介绍 前后端分离开发,就是在项…

【java】【面对对象高级2】继承

目录 1、概念 2、继承的执行原理 3、继承有啥好处 3.1 People父类 3.2 Teacher子类 3.3 主程序 4、继承的相关注意事项 4.1 权限修饰符 4.2 单继承、Object类 4.2.1 单继承 4.2.2 Object类 4.3 方法重写(声明不变、重新实现) 4.3.1 认识方法重写…

2023JAVA 架构师面试 130 题含答案:JVM+spring+ 分布式 + 并发编程》...

此文包含 Java 面试的各个方面,史上最全,苦心整理最全 Java 面试题目整理包括基JVM算法数据库优化算法数据结构分布式并发编程缓存等,使用层面广,知识量大,涉及你的知识盲点。要想在面试者中出类拔萃就要比人付出更多的…

selenium等待的三种方式(详细)

1.强制等待 time.sleep(3) 这种方式会是操作强行等待3s才会进行下一步操作,但是这种放法,可能会延长测试的时间,如果元素在1s中出现,就会浪费2s的时间,并且这种放法单次有效,每次需要等待元素的操作都需要…

如何打造亚马逊一流新品运营方案?

优化亚马逊新品运营方案需要商家采取一系列策略,以在激烈的市场竞争中脱颖而出。以下是一些针对亚马逊新品运营的优化建议: 1.深入了解产品和市场: 在上线新品之前,商家需要对产品和市场进行深入了解。了解目标客户群体、市场需…

重要通知|关于JumpServer开源堡垒机V2版本产品生命周期的相关说明

JumpServer(https://github.com/jumpserver)开源项目创立于2014年6月,已经走过了九年的发展历程。经过长期的产品迭代,JumpServer已经成为广受欢迎的开源堡垒机。 JumpServer堡垒机遵循GPL v3开源许可协议,是符合4A&a…