SPI

news/2024/9/19 9:05:21/文章来源:https://www.cnblogs.com/lu-ciana/p/18402360

SPI

SPI共用4种模式,通过控制CPOL(时钟极性)和CPHA(时钟相位)来控制,此处以W25Q128的时序图来利用IO口模拟SPI模式0与模式3通信过程中的时序。
image

  1. 模式0:SCL处于低电平,第一个边沿收发
  2. 模式1:SCL处于低电平,第二个边沿收发
  3. 模式2:SCL处于高电平,第一个边沿收发
  4. 模式3:SCL处于高电平,第二个边沿收发

image

SPI模式0

uint8_t W25Q128_SendByte(uint8_t byte)
{int i= 0;uint8_t data= 0;//1. SCK引脚输出低电平W25Q128_SCK(0);delay_us(5);//3.循环发送8次,每次发送一个bit遵循MSB高位先出for(i=0;i<8;i++){//1.判断待发送的字节的最高位if(byte & 0x80){W25Q128_MOSI(1);}else{W25Q128_MOSI(0);}byte <<= 1;delay_us(5);//2.SCK引脚输出高电平,此时第一个边沿出现W25Q128_SCK(1);delay_us(5);//3.此时从机会响应一个bit,主机需要接收!data <<= 1;data |= W25Q128_MISO;delay_us(5);//4.SCK引脚输出低电平,此时第二个边沿出现W25Q128_SCK(0);delay_us(5);}return data;
}

SPI模式3

uint8_t W25Q128_SendByte(uint8_t byte) {int i = 0;uint8_t data = 0;//1. SCK引脚输出高电平W25Q128_SCK(1);delay_us(5);//3.循环发送8次, 每次发送一个bit遵循MSB高位先出for (i = 0; i < 8; i++) {//2.SCK引脚输出低电平,此时第一个边沿出现W25Q128_SCK(0);delay_us(5);//4.判断待发送的字节的最高位if (byte & 0x80) {W25Q128_MOSI(1);} else {W25Q128_MOSI(0);}byte <<= 1;delay_us(5);//5.SCK引脚输出高电平,此时第二个边沿出现W25Q128_SCK(1);delay_us(5);//6.此时从机会响应一个bit,主机需要接收!data <<= 1;data |= W25Q128_MISO;delay_us(5);}return data;
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024软件工程第一次个人作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024/这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13243这个作业的目标 初步认识博客园和GIthub平台,初步了解软件工程学科的任务学号 102201622一、个人logo文生图任务 使用工具:Op…

Gitness 基础安装

对gitness最基本的安装以及从Github配置token获取源码仓库的相关配置。目录Docker 安装注册账户创建项目导入已有仓库配置 Github Token同步源代码仓库 官方链接Gitness was the next step in the evolution of Drone, from continuous integration to source code hosting, br…

Gradle下载太慢? Gradle官方最全版本极速下载网址

Gradle下载太慢? Gradle官方最全版本极速下载地址 Gradle简介 Gradle 作为一种开源的构建工具,理论上可以开发所有应用,在 Java 应用程序的构建与发布方面起着极大的助力作用。Gradle能够为开发者构建应用程序提供有力支持,这不仅对自动化测试大有益处,还能实现分发构建,…

软件工程课程第一次个人作业1

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024/这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13243这个作业的目标 1.理解与运用AI辅助学习与工作(生成logo、指南等) 2.自我介绍 3.学习规划 4.熟悉学习环境学号 102202123一、…

海豚调度清理:使用 API 轻松清理工作流历史版本记录,一键减少关系日志和任务定义日志表的数据量

💡 本系列文章是 DolphinScheduler 由浅入深的教程,涵盖搭建、二开迭代、核心原理解读、运维和管理等一系列内容。适用于想对 DolphinScheduler了解或想要加深理解的读者。 推荐阅读:海豚调度监控:使用图关系解决核心链路告警问题,减轻任务运维负担,用户五星好评!海豚…

吴恩达 AI 完整课程资源2020汇总

风度78 于 2020-02-19 11:30:00 发布https://blog.csdn.net/fengdu78/article/details/104403851编辑 | Will 出品 | 字节AI 吴恩达(Andrew Ng),毫无疑问,是全球人工智能(AI)领域的大 IP!随着近些年来 AI 越来越火的大趋势下,吴恩达一直致力于普及、宣传、推广 AI 教育…

509迷宫

想法还是太过于巧妙了。 首先有一个很简单的容斥 \(n^2\) 做法。 然后我们能发现 \(mod\) 很小,注意:\(\forall_{1 \le i < mod}\) \(C_{mod}^{i} = 0\)。 所以就有个天才的做法,将矩阵沿着对角线切开,类似这样:如果我们每隔 \(mod\) 进行一次切割,那么我们就会发现如…

尿素

大周期看在走2浪的回调

零基础学习地平线 征程6 QAT 量化感知训练

1. 背景 首先感谢地平线工具链用户手册和官方提供的示例,给了我很大的帮助,特别是代码注释写了很多的知识点,超赞!要是注释能再详细点,就是超超赞了!下面开始正文。 最近想着学 QAT(量化感知训练)玩玩,大体看了一下地平线的用户手册,不说精度调优之类比较复杂的,光一个…

征程 6E/M 快速上手实战 Sample-PYM

01 IPC模块简述 1.1 硬件数据流 PYM(Pyramid)作为一个硬件加速模块(图像缩小及 ROI 提取),对输入的图像按照金字塔图层的方式处理,并输出到 DDR:PYM 模块在 Camsys 子系统的数量和位置如下,总共 3 个 PYM 硬件,PYM0、PYM1、PYM4(只支持 offline)。1.2 PYM-Sample 软…

#CAMA | 以视觉为中心的静态地图元素标注方法

01 现有标注方法的局限性 在自动驾驶领域,静态地图元素的精确标注是实现高精度环境感知的关键。然而,现有的公共数据集在一致性和准确性方面存在局限,无法满足日益增长的高精度训练数据需求。图一展示了 nuScenes 数据集中的默认高清地图无法在一致性和准确性两个方面提供准…