传感器类总结(一)MPU9250 3-2程序关于IIC的底层程序

关于IIC的逻辑和底层协议可以看之前总结的
#IIC 通信协议

1、读写数据

1.1、写数据

![在这里插入图片描述](https://img-blog.csdnimg.cn/3e
发送N个字节程序的流程:
1、发送起始信号
2、发送从机地址和写
3、等待从机发回应答信号
4、发送第一字节数据 等待应答
5、发送下一字节数据 等带应答或非应答信号
6、发送停止信号停止发送

1.2、读数据

在这里插入图片描述
读取N个字节程序的流程:
1、发送起始信号
2、发送从机地址和读
3、等待从机发回应答信号
4、读取到第一字节数据 发送应答信号给从机
5、读取下一字节数据 发送应答信号/非应答信号
6、发送停止信号停止读取

1.3起始信号

在这里插入图片描述

SCL 为高电平 SDA 产生下降沿

1.4停止信号

SCL 为高电平 SDA 产生上升沿

1.5有效数据

在这里插入图片描述

SCL为低电平时 SDA数据无效可进行数据交换。

1.6 应答信号和非应答信号

在这里插入图片描述
SCL的第九个时钟时SDA为高电平那个表示非应答信号,SDA为高低平那个表示应答信号

2 程序

void MPU_IIC_Start(void)
{MPU_SDA_OUT();     //sda线输出MPU_IIC_SDA=1;	  	  MPU_IIC_SCL=1;delay_us(4);MPU_IIC_SDA=0;//START:when CLK is high,DATA change form high to low delay_us(4);MPU_IIC_SCL=0;//钳住I2C总线,准备发送或接收数据 
}	 

产生起始信号流程:
1、配置SDA为输出信号
2、SDA设置为高电平
3、SCL设置为低电平
4、延时4us 等待两条线电平稳定
5、SDA设置低电平 此时在SCL为高时SDA产生一个下降沿。
6、拉低SCL 钳住I2C 总线,因为SCL为低电平SDA上数据无效。

//IIC发送一个字节
//返回从机有无应答
//1,有应答
//0,无应答			  
void MPU_IIC_Send_Byte(u8 txd)
{                        u8 t;   MPU_SDA_OUT(); 	    MPU_IIC_SCL=0;//拉低时钟开始数据传输for(t=0;t<8;t++){              MPU_IIC_SDA=(txd&0x80)>>7;txd<<=1; 	  delay_us(2);MPU_IIC_SCL=1;delay_us(2); MPU_IIC_SCL=0;	delay_us(2);}	 
} 

写一个字节流程:
1、设置SDA为输出模式
2、将时钟线拉低
3、for循环8位数据
4、在其中一次循环中,首先取第七位然后右移7位,数据左移1位(第六位变为第七位),延时2us,保证数据正确,SCL产生2us高电平,然后拉低SCL延时2us,等待下次循环传输第六位使用。

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

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

相关文章

D365:Debug

文章目录 前言一、附加进程二、选择进程三、DebugDebug进ApplicationSuite文件方法一方法二 前言 使用 Visual Studio 调试 D365 一、附加进程 点击路径 Debug > Attach to Process 二、选择进程 勾选下面的Show processes from all users,选择w3wp.exe&#xff0c;点击At…

#nlp|jieba分词词性对照

jieba词性对照表 a 形容词 ad 副形词 ag 形容词性语素 an 名形词 b 区别词 c 连词 d 副词 df dg 副语素 e 叹词 f 方位词 g 语素 h 前接成分 i 成语 j 简称略称 k 后接成分 l 习用语 m 数词 mg mq 数量词 n 名词 ng 名词性语素 nr 人名 nrfg nrt ns 地名 nt 机构团体名 nz 其他…

HCIA学习第六天:OSPF:开放式最短路径优先协议

OSPF&#xff1a;开放式最短路径优先协议 无类别链路状态IGP动态路由协议 1.距离矢量协议&#xff1a;运行距离矢量协议的路由器会周期性的泛洪自己的路由表。通过路由的交互&#xff0c;每台路由器从相邻的路由器学习到路由&#xff0c;并且加载进自己的路由表中&#xff1b…

git学习及简单maven打包

前提&#xff1a; 已经有远程仓库地址 和账号密码了 已经安装git了 1.本地新建文件夹A用作本地仓库 2.在A文件夹下右键打开GIT BASH HERE 3.创建用户和密码&#xff0c;方便追踪提交记录 git config --global user.email “caoqingqing0108” //创建邮箱 git config --global …

电视盒子哪款好?年货节必看电视盒子排名

电视盒子哪款好&#xff1f;电视盒子是每天都会使用到的&#xff0c;和电视机是好搭档&#xff0c;但很多朋友买电视盒子的时候会踩雷&#xff0c;像虚标配置、偷工减料、无售后等&#xff0c;近来年货节大促购入电视盒子的消费者增多&#xff0c;小编这次要来分享的是好评度最…

centos搭建ftp踩坑记录

ftp服务器搭建参考b站视频 第1坑&#xff0c;开放端口后仍然无法连接&#xff1a; 这里不仅需要在防火墙打开20和21端口&#xff0c;还需要打开被动访问所使用的端口&#xff0c;也就是在配置文件vsftpd.conf中指定的被动访问接收端口。 pasv_enableYES pasv_min_port40000 p…

【Java】Springboot入门

学习目标 基于SpringBoot框架的程序开发步骤 熟练使用SpringBoot配置信息修改服务器配置 基于SpringBoot的完成SSM整合项目开发 一、SpringBoot简介 1. 入门案例 问题导入 SpringMVC的HelloWord程序大家还记得吗&#xff1f; SpringBoot是由Pivotal团队提供的全新框架&…

了解维特比算法:通信系统和自然语言处理中解码的基石

一、介绍 在数字通信和信号处理领域&#xff0c;维特比算法是一种革命性的纠错和解码方法。该算法以 1967 年推出的 Andrew Viterbi 的名字命名&#xff0c;已成为数字通信和自然语言处理领域的基础。本文旨在深入研究维特比算法的复杂性&#xff0c;探讨其理论基础、实际应用以…

四、ESP8266网络客户端

四、ESP8266网络客户端 基本操作1、[使用ESP8266HTTPClient库实现网络通讯](https://blog.csdn.net/X_King_Q/article/details/112061397)2、使用WiFiClient库实现网络通讯3、Stream4、HTTP协议数据通讯4.1客户端向服务器发送数据信息4.2客户端向服务器请求数据信息 基本操作 …

2401cmake,学习cmake1

1步:一个基本出发点 最基础项目是基于源码的一个可执行构建.对简单项目.三行CMakeLists.txt就满足了. 在步1路径下创建如下CMakeLists.txt文件: cmake_minimum_required(VERSION 3.10) //设置项目名 project(Tutorial) //添加可执行文件 add_executable(Tutorial tutorial.cx…

跨境电商展-2024广州跨境电商展览会(ICBE China 2024)

ICBE2024第11届广州国际跨境电商交易博览会&#xff0c;作为华南地区最具影响力的跨境电商展览会&#xff0c;将再次于2024年5月15-17日在广州保利世贸展览馆盛大举行。此次展会以“创新、合作、共赢”为主题&#xff0c;汇聚了来自全球各地的跨境电商企业、平台、服务商等&…

(2024,定性评估、定量评估、人类评估)神经风格转移评估:综述

Evaluation in Neural Style Transfer: A Review 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 1. 简介 2. 神经风格转移方法 0. 摘要 神经风格转移&#xff08;Neural St…

LeetCode.2808. 使循环数组所有元素相等的最少秒数

题目 题目链接 分析 我们最终形成的数组一定是当前数组nums 中的一个数字。 所以我们的想法就是枚举数组 nums 中的所有数字&#xff0c;取最小值。 题目告诉我们每一秒都可以向左右扩散一位&#xff0c;那么多个相同的 x 同时扩散&#xff0c;扩散完整个数组耗时就取决于两…

主流新能源汽车防盗模式简介

主流新能源汽车中&#xff0c;守卫模式是指车辆在停车状态下&#xff0c;通过特定的硬件和软件系统来保护车辆的安全&#xff0c;防止车辆被盗或被破坏。不同品牌的新能源汽车中&#xff0c;守卫模式的名称和功能略有不同&#xff0c;以下是常见的几种守卫模式及其对标&#xf…

BroadcastChannel使用

BroadcastChannel() 构造函数用于创建一个 BroadcastChannel 对象&#xff0c;并与底层的通道相关联。 channelName 表示通道名称的字符串&#xff1b;对于相同的来源下的所有浏览上下文&#xff0c;一个名称只对应一个通道 发送者 const channel new BroadcastChannel(&qu…

Django实例_后台管理及分页器

原理步骤参考: Django开发_14_后台管理及分页器-CSDN博客 一、创建Django项目 二、创建page_app python manage.py startapp page_app三、修改settings.py文件 (一)添加app (二)设置每页显示数据个数 (三)设置中文显示 四、总路由添加子路由路径 from django.contrib impo…

210. 课程表 II

210. 课程表 II 题目链接&#xff1a;210. 课程表 II 代码如下&#xff1a; //拓扑排序&#xff1a;判断图中是否存在回路 class Solution { public:vector<int> findOrder(int numCourses, vector<vector<int>>& prerequisites) {vector<int> r…

最全前端 HTML 面试知识点

一、HTML 1.1 HTML 1.1.1 定义 超文本标记语言&#xff08;英语&#xff1a;HyperTextMarkupLanguage&#xff0c;简称&#xff1a;HTML&#xff09;是一种用于创建网页的标准标记语言 HTML元素是构建网站的基石 标记语言&#xff08;markup language &#xff09; 由无数个…

PyTorch深度学习实战(34)——Pix2Pix详解与实现

PyTorch深度学习实战&#xff08;34&#xff09;——Pix2Pix详解与实现 0. 前言1. 模型与数据集1.1 Pix2Pix 基本原理1.2 数据集分析1.3 模型构建策略 2. 实现 Pix2Pix 生成图像小结系列链接 0. 前言 Pix2Pix 是基于生成对抗网络 (Convolutional Generative Adversarial Netwo…

pinctrl/gpio子系统(1)-pinctrl子系统介绍及驱动源码分析

1.简介 在如今的驱动开发工作中&#xff0c;实际上已经很少去对着寄存器手册进行驱动开发了&#xff0c;一般板子拿到手&#xff0c;已经有原厂的驱动开发工程师&#xff0c;在gpio子系统、pinctrl子系统中将自家芯片的引脚适配好了。 我们直接基于设备树已配置好的寄存器值&a…