2023版 STM32实战12 IIC总线读写AT24C02

news2024/9/23 19:23:50

IIC简述

一个多主从的串行总线,又叫I2C,是由飞利浦公司发明的通讯总线

IIC特点

-1- 串行(逐bit传输)

-2- 同步(共用时钟线)

-3- 半双工(收发不同进行)

-4- 总线上的任何设备都可以是主机

开发使用习惯和理解

-1- 通过地址寻址

-2- 数据线的输入输出模式需要经常改变

-3- 通信只需要两根线(SCL)(SDA)

AT24C02介绍

一种为有限的系统空间提供存储方案的芯片,使用IIC总线通信

地址介绍

前四位固定为1010

A2 A1 A0根据硬件设计定义(可查看下方原理图)

R/W位根据收发定义 读取设置为1 发送设置为0

在这里插入图片描述

原理图

在这里插入图片描述

数据发送顺序

MSB 先发高位
在这里插入图片描述

格式详解-开始信号

时钟线高电平的时候数据线呈下降沿(从高电平改为低电平)
在这里插入图片描述

格式详解-停止

时钟线高电平的时候数据线呈上升沿(从低电平改为高电平)
在这里插入图片描述

格式详解-数据发送时钟线的状态(SCL)

时钟低电平准备数据(红框)
时钟高电平发送数据(蓝色框)
在这里插入图片描述

格式详解-数据发送数据线的状态(SDA)

无论地址还是数据,每发送8bit必须等待一个从机应答

在这里插入图片描述

主函数

在这里插入图片描述

全部工程获取

查看下方头像

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

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

相关文章

Linux权限及Xshell运行原理

目录 1.Linux中的用户 1.1 用户分类 1.2 用户切换 2.权限的概念 2.1 权限概念以及表示 2.2 文件属性以及类型 2.2.1 文件属性 2.2.2 文件类型 2.3 Linux下的角色 3.权限的修改 3.1 chmod 3.2 chown 3.3 chgrp 4.目录权限 5.权限掩码 5.1 默认权限 5.2 起始权限…

省时省力!掌握简单快捷的关机命令,轻松实现电脑的自由开关机

本文介绍了为电脑设置特定的自动关机时间的四种方法。我们还包括如何停止计划关机的信息。 如何用命令提示符安排计算机关机 按照以下步骤使用命令提示符进行一次性关闭。 1、在Windows搜索框中,键入CMD。 2、点击Enter。 3、在命令提示符窗口中,键入shutdown -s -t 和所…

matlab simulink 四旋翼跟拍无人机仿真

1、内容简介 略 7-可以交流、咨询、答疑 2、内容说明 四旋翼跟拍无人机仿真 四旋翼、无人机 需求分析 背景介绍 无人飞行机器人,是无人驾驶且具有一定智能的空中飞行器。这是一种融合了计算机技术、人工智能技术、传感器技术、自动控制技术、新型材料技术、导航…

基于机器视觉的车道线检测 计算机竞赛

文章目录 1 前言2 先上成果3 车道线4 问题抽象(建立模型)5 帧掩码(Frame Mask)6 车道检测的图像预处理7 图像阈值化8 霍夫线变换9 实现车道检测9.1 帧掩码创建9.2 图像预处理9.2.1 图像阈值化9.2.2 霍夫线变换 最后 1 前言 🔥 优质竞赛项目系列,今天要分…

HCL模拟器选路实验案例

此选路题目选自职业院校技能竞赛中的一道题比较考验思路,适合于参加新华三杯大赛以及网络专业的同学,当做练习题目进行解题​​​​​​​ 题目 1.S1、S2、R1、R2运行ospf进程100,区域0,R1、R2、R3、R4、R5运行ospf进程200&#…

Linux进阶之旅:从零开始,探索基本指令的神秘力量!

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是尘缘,一个在CSDN分享笔记的博主。📚📚 👉点击这里,就可以查看我的主页啦!👇&#x…

【java学习—九】工厂方法FactoryMethod(6)

文章目录 1. 概念2. 实际的应用 1. 概念 FactoryMethod 模式是设计模式中应用最为广泛的模式,在面向对象的编程中,对象的创建工作非常简单,对象的创建时机却很重要。 FactoryMethod 解决的就是这个问题,它通过面向对象的手法&…

RabbitMQ初入门

1、RabbitMQ是什么 RabbitMQ是“实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均…

23 行为型模式-迭代器模式

1 迭代器模式介绍 迭代器模式是我们学习一个设计时很少用到的、但编码实现时却经常使用到的行为型设计模式。在绝大多数编程语言中,迭代器已经成为一个基础的类库,直接用来遍历集合对象。在平时开发中,我们更多的是直接使用它,很…

C++学习 day--21 地震监测系统实现、内存泄漏检测工具

1、项目需求 地震监测系统主要是利用地震检波器收集到的地壳运动信息,从而预测和确定地震的震中以 及强度。 预测方法 地震检波器每隔固定的时间间隔采样一次预测地震的能量数据,并保存到文件中,地震监测 系统会从文件中读取相应的能量数据&…

第四章 文件管理 十二、虚拟文件系统

目录 一、虚拟文件系统图 二、虚拟文件系统的特点 三、存在的问题 四、文件系统挂载 一、虚拟文件系统图 二、虚拟文件系统的特点 1、向上层用户进程提供统一标准的系统调用接口,屏蔽底层具体文件系统的实现差异。 2、VFS要求下层的文件系统必须实现某些规定的…

Map集合 遍历:lambda方式

package day01;import java.util.*;public class Mapday1 {public static void main(String[] args) {/* HashMap 无序 不重复&#xff0c;会覆盖前面 无索引*/System.out.println("--------------------");Map<String, Integer> map new HashMap<>();m…

【DBeaver】建立连接报驱动问题

事件 在DBeaver中建立pgsqlite连接&#xff0c;测试连接时&#xff0c;报 can’t load driver class ‘org.postgresql.Driver’ 问题原因 pgsqlite数据库驱动与DBeaver版本不匹配 pg解决办法 在https://jdbc.postgresql.org/download/中下载最新版本的驱动&#xff0c;然…

【Java基础】反射机制与动态代理机制

反射机制与动态代理机制 文章目录 反射机制与动态代理机制1. 反射(Reflection)的概念1.1 反射概述1.2 反射的优缺点 2. 理解Class类并获取Class实例2.1 Class2.2 Class类的常用方法 3. 反射的基本应用3.1 应用1&#xff1a;创建运行时类的对象3.2 应用2&#xff1a;调用运行时类…

什么是恶意代码?

前言&#xff1a;本文旨在分享交流技术&#xff0c;在这里对恶意代码进行全面的介绍和讲解 目录 一.什么是恶意代码 二.恶意代码的发展史 三.恶意代码的相关定义 四.恶意代码攻击机制 PE病毒 PE文件的格式 脚本病毒 脚本文件隐藏方法 宏病毒 浏览器恶意代码 U盘病毒 …

Go基础——数组、切片、集合

目录 1、数组2、切片3、集合4、范围&#xff08;range&#xff09; 1、数组 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列&#xff0c;这种类型可以是任意的原始类型例如整型、字符串或者自定义类型。 Go 语言数组声明需要指定元素类型及元素个数&#xff0c;与…

docker - DockerFile 编写 指令

文章目录 前言docker - DockerFile 编写 指令1. FROM2. MAINTAINER3. RUN4. CMD5. LABEL6. EXPOSE7. ENV8. ADD9. COPY10. ENTRYPOINT11. VOLUME12. USER13. WORKDIR14. ARG15. ONBUILD16. STOPSIGNAL 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&am…

Virtual DOM

目录 Virtual DOM 前言 用法 代码 理解 Virtual DOM的工作原理&#xff1a; 为什么使用Virtual DOM? 哪些库/框架使用Virtual DOM? 总结 Virtual DOM&#xff08;虚拟DOM&#xff09;是一种编程概念&#xff0c;它是对真实DOM的轻量级抽象表示。在前端开发中&#x…

【软考】系统集成项目管理工程师(九)项目成本管理【4分】

一、成本概念 1、产品全生命周期成本 产品或系统的整个使用生命周期内&#xff0c;在获得阶段&#xff08;设计、生产、安装和测试等活动&#xff0c;即项目存续期间&#xff09;、运营与维护、生命周期结束时对产品的处置所发生的全部成本 2、成本类型 成本类型描述可变成…

【Matlab2016】Matlab中文版的下载、安装、激活(不建议安装过高版本!!)

这里写目录标题 首先双击R2016_win64.iso加载镜像文件双击setup.exe开始安装选择使用文件密钥安装填入密钥修改安装路径并记住此路径建议全部勾选等待安装完成 激活复制补丁到matlab路径下 创建快捷方式进入bin目录&#xff0c;找到matlab.exe 安装包 首先双击R2016_win64.iso加…