SPI配置
I/O配置
主输出、从输入(MOSI)
主出从入(MOSI )引脚是主器件的输出和从器件的输入,用于主器件到从器件的串行数据传输。当SPI 配置为主器件时,该引脚为输出,当 SPI 配置为从器件时,该引脚为输入。数据传输时 MSB 在前。
主输入、从输出(MISO)
主入从出(MISO )引脚是从器件的输出和主器件的输入,用于从器件到主器件的串行数据传输。当SPI 配置为主器件时,该引脚为输入,当 SPI 配置为从器 件时,该引脚为输出。数据传输时 MSB 在前。
串行时钟(SCK)
串行时钟(SCK )引脚是主器件的输出和从器件的输入,用于同步主器件和从器件之间在 MOSI 和MISO 线上的串行数据传输。当 SPI 配置为主器件时,该引脚输出时钟,当 SPI 配置为从器件时,该引脚为输入。
从选择(SSN)
从选择(SSN )引脚用来控制从器件选中,如 图 16-2所示,当 SPI 配置为主器件时, SSN 引脚必须接高电平,当 SPI 配置为从器件时, SSN 引脚必须接 低电平。
SPI主从器件的连接如图 所示:
主从器件的MOSI 、 MISO 和 SCK 分别连在一起,主器件的 SSN 必须接高电平,从器件的 SSN 必须接低电平。主从器件通过 MOSI 、 MISO 连成一个环路,主器件输出时钟,数据传输时,主器件通过MOSI 输出数据,从器件通过 MISO 输出数据。一字节数据传输完毕,主从器件将交换 8 位移位寄存器数值。

数据传输配置
1、 进行数据传输前需先配置 SPCR.SPE 位和 SPCR.MSTR 位,以使能 SPI 和设置主从模式。
2、 配置 SPCR.CPHA 位和 SPCR.CPOL 位,以设置串行时钟相位和极性(主从器件需一致)。
3、 配置 SPCR1.SPR3 位和 SPCR.SPR[2:0] 位,以设置串行时钟波特率(若为从器件模式则不用设置,串行时钟速率由主器件决定)。
4、 需要时,配置中断,配置 IRCIE2.SPIIE,SPCR.SPIE 和 SPCR.SPIF 位。
5、 主器件模式下数 据传输前需先将从器件的 SSN 引脚拉低,主器件的 SSN 引脚必须保持高电平。主器件模式下 MCU 写 SPDR 寄存器的动作启动数据传输,中断标志 SPIF 置起完成数据传输。
6、 从器件模式处理较为特殊,当 CPHA=0 时,从器件的 SSN 引脚拉低启动数据传输,从器件的SSN 引脚拉高结束数据传输(即使在此之前 SPIF 中断已经产生),因为从器件不知道传输何时开始,当 SSN 引脚拉低后, MISO 引脚立即开始数据 MSB 的传输。
当CPH A=1 时,从器件在串行时钟的第一个沿启动数据传输,在 SPIF 置位后结束数据传输。
数据冲突
当SPITXBUF 数据尚未被读进移位寄存器,或者 SPIRXBUF 中的数据未被 CPU 读取时,对SPITXBUF/SPIRXBUF 寄存器的写操作会产生对应的冲突错误, SPIIF.TXCOL/SPIIF.RXCOL 位会置起,产生中断。导致冲突的写入数据将被忽略。数据冲突错误在主从模式下都会产生。
对SPITXBUF 的写 操作,由芯片内部的 Master 模块发起,包括 CPU 、 DMA 等等。对 SPIRXBUF的写操作,则由外部 SPI 器件发起。
当数据冲突发生时,SPITXBUF 和 SPIRXBUF 内原有数据不会被刷新,新写入的数据丢失。
相关文章:
SPI配置
I/O配置 主输出、从输入(MOSI) 主出从入(MOSI )引脚是主器件的输出和从器件的输入,用于主器件到从器件的串行数据传输。当SPI 配置为主器件时,该引脚为输出,当 SPI 配置为从器件时,该…...
给你们讲个笑话——低代码会取代程序员
今天是正经男,我们严肃讨论一下一直以来争吵不休的取代问题。 低代码开发平台,低代码技术会取代开发人员么? 一、背景 低代码开发平台的普及,让很多公司对快速生成应用抱有很大期望。甚至有人认为,低代码开发平台未来…...
Kotlin的出现无疑是为了超越Java而存在
Kotlin的出现无疑是为了超越Java而存在。在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言,背景就是Oracle告Google侵权使用java。众所周知,Java的跨平台的开发语言,得益于虚拟机。我比较关注Kotlin用于Android…...
基于C#开发 B/S架构的实验室管理系统 云LIS系统(MVC + SQLserver + Redis)
一、云LIS系统是将各种样本、免疫、临检、放免、及实验用的分析仪器,通过网络管理和传输实验分析过程中全部数据。对每一专业,实现检验申请、样本采集、样本核收、联机检验、质量控制、报告审核到报告发布的全环节的信息化管理平台。 二、基于B/S架构的云…...
Webpack5有哪些更新?
52. Webpack5有哪些更新? 1. 更快的构建速度 Webpack5 在构建速度方面做出了一些改进,其中最重要的改进是使用持久性缓存。持久性缓存可以将中间结果存储在硬盘上,这些结果可以在下一次构建时被重用,从而减少了构建时间。此外&a…...
前端Vue
前端Vue 基础语法 <div id"div"><h1>This is a data:{{data}}</h1><h1>This is a method:{{method()}}</h1> </div><script>//创建vue实例需要传入配置对象,el指定一个元素作为容器,data保存需要的数据,methods定义函数…...
SpringCloud 分布式事务组件之Seata
目录 背景介绍什么是分布式事务什么叫做逆向补偿呢互联网最流行的分布式事务组件seata总结 背景 大家好,今天给大家分享一个在2022年出去面试Java几乎必问的一个技术,那就是seata。什么??你才看了第一句话心里有闪现了无数个问…...
@TransactionalEventListener的使用和实现原理
一、问题描述 平时我们在完成某些数据的入库后,发布了一个事件,此时使用的是EventListener,然后在这个事件中,又去对刚才入库的数据进行查询,从而完成后续的操作。例如(数据入库>对入库数据进行查询审核…...
没计算机基础,就是评职称用的,软考中级哪个好考啊?
那必须把系统集成项目管理工程师安排上! 题目也不难,主要弄清楚47个过程的输入输出,还有工具的使用,几乎很多题都是按照这逻辑来的。 建议可以去网上、刷题APP上,多薅点资料和真题,集成是热门科目&#x…...
数字化战略,如何解读企业财务报表
01 财务数字化管理 第一,财务基本信息化建设。比如财务系统、财务共享中心等通过数字化的手段提升财务会计核算、财务流程管理效率,解决流程性管理的问题。 第二,利用各类商业智能 BI 分析、数据分析的手段把企业的所有行为都进行量化对比&…...
JAVA14新特性
JAVA14新特性 概述 Oracle在2020年3月17日宣布JAVA14 全面上市,JAVA14通过每六个个月发布一次新功能,为企业和开发人员社区提供增强功能,继续了Oracle加快创新的承诺. 最新的JAVA开发工具包提供了新功能,其中包括两项备受期待的新预览功能,实例匹配的匹配模式(JEP 305) 和记录…...
Google SEO优化的10大误区
以下是 Google SEO 优化的十大误区: 1、关键词堆砌: 过度使用关键词,使得内容不自然,难以阅读,同时也会被搜索引擎认为是垃圾信息,影响网站排名。 2、内容质量差: 质量差的内容会降低用户的体…...
.netCHARTING 10.5 dotnetcharting Crack
.net图表 10.5 为柱形图和条形图添加拐角半径控件。 5月 05, 2023 - 16:18新版本 特征 直角或直线组织连接线 - 默认情况下,通过以直角绘制组织连接线来增强组织连接线的显示方式。您可以使用直线选项更改此默认值,并直接在点…...
单元,集成,系统,验收,回归测试
测试流程 单元测试—集成测试–系统测试—验收测试 单元测试 通常由程序员自己来进行单元测试。程序员编写代码后,应该先自行进行单元测试,验证代码的正确性和质量。单元测试可以通过手动测试或自动化测试工具进行。 集成测试 集成测试:集成…...
云计算适合大专生学吗?
云计算适合大专生学吗? 对于大专毕业生来说,云计算的确是一个不错的选择,因为云计算技术应用专业,主要就是专科院校在办学。不管你是计算机相关专业的,还是零基础想学习都是可以的;原因就在于云计算这门专业…...
【系统集成项目管理工程师】项目风险管理
💥十大知识领域:项目风险管理 项目风险管理包括以下 6 个过程: 规划风险管理识别风险实施定性风险分析实施定量风险分析规划风险应对控制风险 一、规划风险管理 定义如何实施项目风险管理活动的过程 输入工具与技术输出项目管理计划项目章程干系人登记册…...
Quartz2D之Path使用初步
我们直接看以下代码: // // MyQuartzView.m // QuartzTest // // Created by zenny_chen on 12-2-21. // Copyright (c) 2012年 GreenGames Studio. All rights reserved. //#import "MyQuartzView.h"// Quartz2D以及Core Animation所需要的头文件 #…...
Adobe考试
Adobe考试又称为Adobe国际认证和Adobe认证考试,Adobe国际认证(英文:Adobe Certified Professional)是Adobe公司CEO签发的权威国际认证体系,旨在为用户提供Adobe软件的专业认证。 Adobe考试覆盖了各种Adobe软件,包括Photoshop、Illustrator、InDesign、P…...
三线城市程序员的薪资待遇怎么样?我分享提高java技术水平的几个方法
今天想和大家聊聊在三线城市,程序员的薪资待遇水平到底是怎样的。随着科技行业的迅速发展,IT行业成为了当今越来越受欢迎的行业之一。在过去的几年里,IT行业中需求最大的工作是与开发相关的工作,比如java,包括前端和手…...
马哈鱼SQLFLow对SQL Server OUTPUT Clause 的数据血缘分析
SQL Server OUTPUT Clause 会对 SQL 语句的血缘分析产生影响,如果忽略对 OUTPUT Clause 的分析,那么将漏掉一些关键的数据血缘关系,从而影响数据血缘分析的准确性,进而影响组织的数据治理质量。 Gudu SQLFlow 可以对 SQL Server …...
2025届毕业生推荐的AI科研平台推荐榜单
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 使AIGC检测率得以降低的关键所在是去削弱文本具备的规律性以及模式化特性。具体的策略涵盖这…...
小步快跑・像CPU一样调度大脑高并发——东方仙盟・阿雪心学
从时间切片到任务切换,构建不颠簸、高效率的思维架构为什么我们这代人要学会 “思维切换”?过去的时代,掌握一门技术、吃透一个领域,就能安稳过一生。但现在不一样了。知识不再稀缺,技术随处可查,信息随手可…...
Seesaw v2直接服务器返回(DSR)模式配置教程:提升负载均衡性能的终极指南
Seesaw v2直接服务器返回(DSR)模式配置教程:提升负载均衡性能的终极指南 【免费下载链接】seesaw Seesaw v2 is a Linux Virtual Server (LVS) based load balancing platform. 项目地址: https://gitcode.com/gh_mirrors/see/seesaw Seesaw v2是基于Linux V…...
Condition底层机制剖析:多线程等待与通知机制 _
在使用Lock之前,使用的最多的同步方式应该是synchronized关键字来实现同步方式了。配合Object的wait()、notify()系列方法可以实现等待/通知模式。 Condition接口也提供了类似Object的监视器方法,与Lock配合可以实现等待/通知模式,但是这两者…...
python math
# 关于Python的深拷贝,你可能需要知道这些 在Python里处理数据时,经常会遇到需要复制对象的情况。这时候很多人会直接使用赋值操作,但很快就会发现事情没那么简单。比如你有一个列表,里面嵌套了另一个列表,当你修改嵌套…...
13. 凸透镜成像规律演示
2. 凸透镜成像规律演示 功能介绍: 通过交互式滑块控制物距,动态演示凸透镜成像的三种情况:成倒立缩小实像、倒立放大实像、正立放大虚像。界面上绘制了简化的光路图,随物距变化实时更新像的位置和大小,形象地解释了 u>2fu>2fu>2f、...
【从零开始学Java | 第二十六篇】双列集合(Map)
目录 前言 一、双列集合的特点 1. 键值对(Key-Value)存储 2. 键(Key)的唯一性 3. 值(Value)的可重复性 4. 单向的映射关系 5. 顺序的差异化(根据具体实现类而定) 二、双列集…...
Serpent 算法:从保守设计到硬件安全典范的深度剖析
1. Serpent 算法的前世今生 第一次听说 Serpent 算法是在2003年的一次密码学研讨会上。当时一位来自剑桥的工程师正在展示他的FPGA加密模块,提到这个算法时用了"固执的老古董"来形容——32轮加密的设计在当时看来简直匪夷所思。但正是这种"固执&quo…...
小米智能家居如何通过Home Assistant实现统一控制?官方集成深度解析
小米智能家居如何通过Home Assistant实现统一控制?官方集成深度解析 【免费下载链接】ha_xiaomi_home Xiaomi Home Integration for Home Assistant 项目地址: https://gitcode.com/GitHub_Trending/ha/ha_xiaomi_home 在智能家居生态系统中,小米…...
WebDataset与机器人学:处理感知数据的高效加载方案
WebDataset与机器人学:处理感知数据的高效加载方案 【免费下载链接】webdataset A high-performance Python-based I/O system for large (and small) deep learning problems, with strong support for PyTorch. 项目地址: https://gitcode.com/gh_mirrors/we/we…...
