IIC学习笔记(立创STMF4开发板)

目录

     

 #I2C涉及相关知识

  #I2C相关介绍

欢迎指正,希望对你,有所帮助!!!


                                        个人学习笔记,参考文献,链接最后!!!

     

 #I2C涉及相关知识

        SDA串行数据线: Serial Data Line 串口数据线 缩写 SDA 主要用于数据传输过程中,将数据一个比特或者一组比特按照时间顺序逐个传输的一条线路,在这跟线上进行数据的收发。

        SCL串行时钟线:Serial Clock Line  串口时钟线 缩写  SCL SCL线负责同步数据传输过程中的时序,这跟线保障了IIC是同步通信,也就是使用相同的时钟。

        串行通信协议:串行通信协议指的是,一种在数据传输过程中,信息以位(bit)进行传输的方式,常见的串行通信协议有,SPI  IIC USART  RS232 RS458

        一主多从:一个主设备 (Master),多个从设备 (Slave),在主设备的SCL 和 SDA线上挂在着多个从设备,单片机作为主机,主导IIC总线运行,挂在IIC总线的所有模块都是从机,而从机只有被主机点名后才能控制IIC总线。

        多主多从:多个主设备(Master),多个从设备(Slave),进行通信

        半双工:就像是对讲机,通信双方只能,从A到B 或者B到A  ,A和B不能同时交互传输数据。

        同步通信:通信双方使用时钟相同,不需要规定波特率。

        从机地址:挂在在IIC总线上的从机地址,在通信时需要加入在数据帧中,使从机检测知道,主机和谁通信,从而对应的从机去响应。常见从机地址为7位。

        使用IIC这种通信协议的设备,都有SCL还有SDA这两种引脚,如果在一个模块上面发现了SCL还有SDA引脚那么这个模块就是使用IIC通信协议进行通信的。

        #I2C相关介绍

       I2C: IIC属于两线式串行总线,同步通信,由飞利浦公司开发,用于微控制器(MCU)和外围设备(从设备)进行通信的一种总线,通常用于一主多从或者(常用),多主多从(不常用)。

        IIC硬件电路图连接规则:设备所有的SCL 和SDA都要连接在一起,所有的SCL和SDA都要配置为开漏输出模式(就是没有办法输出高电平) SCL和SDA各自要添加一个上拉电阻,阻值一般为4.7K左右。

                         

        IIC通信开启条件:SCL高电平期间,SDA从高电平切换到低电平,随后SCL也从高电平切换到低电平,代表开始通信。

                                                        

        IIC通信终止条件:SCL高电平期间,SDA从低电平切换到高电平,这个过程是SCL先为高电平,在停止信号发出后,主设备不能再发送数据除非,在发出开始信号。

                                                     

        IIC数据传输:在IIC经过了其实条件之后,就可以传输数据了,IIC通信开始后,SDA变为传输的电平信息,但是在传输数据的时候,必须为SCL高电平,此时SDA电平不能发生变化,传输完成,SCL拉低,SDA在此时改编为需要传输的数据,然后SCL拉高,SDA输出传输,是这样的一个过程,如果在SCL高电平期间SDA电平发生改变会被认为是,起始或者停止条件的一种。

        IIC应答机制:为了保证数据有被接受,IIC有一个特性,就是应答机制,当主机给从机发送了一个数据,此时从机会给主机发送应答信号,告诉主机,自己有成功接收数据。

       IIC应答信号电平(NACK):IIC发送应答信息,时SCL处于高电平,SDA为低电平,此时有效应答,为ACK                          

                                         

                                                                                

        IIC非应答信号(NACK):如果从机没有收到信息,此时发送的信息,就是非应答信号,此时SCL为高电平,SDA为高电平。

                                   

                                        到此介绍完了IIC的所有信号,传输表示形式,

                                                

 #I2C收发数据时数据帧格式介绍

       

           IIC主机发送数据格式:7bit(addresss)+1bit(read/write)+1bit(ACK)+8bit(data)+1bit(ACK)  ,在IIC通信开启之后,SDA上的数据帧是一个字节,也就是8bit附带一个应答位,所以一个数据帧总共有9位,数据帧最高位位(MSB)读写位,0表示主设备向从设备(write)写数据,1表示主设备向从设备(read)读数据

       

        

        上面这种是IIC发送数据帧格式,而IIC读取数据帧格式是和发送IIC数据帧格式是不一样的,下文介绍,而IIC通信协议,从主设备向从设备发送数据帧格式如上图所示,格式如下。  

                 7bit(addresss)+1bit(read/write)+1bit(ACK)+8bit(data)+1bit(ACK) 

        IIC主机读取数据格式:首先SDA下拉,产生开始信号,主机发送   7bit(addresss)+1bit(read/write)+1bit(ACK),此时第8为是写,主机收到应答,将要访问的从机寄存器地址发送出去,此时主机转换为接受,从机转换为发送,此时主机从新发送开始信号,附带从机地址,此时,1bit(read/write)为read,最后产生停止信号,结束传输过程

                                然后本文不对硬件IIC进行介绍。【立创·天空星STM32F407VET6】入门手册 - 飞书云文档 (feishu.cn)IIC原理超详细讲解---值得一看-CSDN博客

                                 欢迎指正,希望对你,有所帮助!!!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

win11误删生物识别设备

不小心给删掉了,我当时删的时候没有打勾,解决方法如下: ************ 很简单, 1.点一下 设置 然后找到下面的界面, 2.找到圈出来的功能 3.再找 “可选更新”的功能点进去 4.一下界面可能有一个能勾选,也可…

怎么样才能让老旧的和颜色受损、丢失的照片重新上色呢?

怎么样才能让老旧的和颜色受损、丢失的照片重新上色呢?大家有时候在家中打扫卫生的时候,偶然发现了自己爸爸妈妈以前拍的照片,但是照片颜色已经受损的很严重了,几乎就是黑白的颜色,很难看清楚爸爸妈妈年轻时候的样子&a…

泵设备的监测控制和智慧运维

泵是一种输送流体或使流体增压的机械。它通过各种工作原理(如离心、柱塞等)将机械能转换为流体的动能或压力能,从而实现液体的输送、提升、循环等操作。 泵的一些具体应用场景: 1.智能水务:在城市供水管网中&#xff…

Lesson 39 Don‘t drop it!

Lesson 39 Don’t drop it! 词汇 front n. 前面 搭配:in front of … 在……前面(外部)    in the front of … 在……前面(内部) 例句:Bobby坐在Sam的前面。    Bobby is sitting in front of Sam…

mysql join on 与left join on

1.假如 有 a b 两个表,我们 用a表作为主表 ,b表作为子表,在我们使用 left join on 查询的时候,如果右表没有查询到数据,那么右表会显示为null,而不是直接查询不到值 我们看例子就ok a 表 b表 我们可以看…

高考填报志愿,为何要优先考虑个人兴趣 ?

随着高考成绩纷纷出炉,考生又要面对人生另外一个重要的选择,那便是填报志愿,这关系到自己能否进入满意的学校和专业。如果考生对上述两个方面都不满意,那高考目的就没有达到。既然填报志愿如此重要,考生和家长在选择的…

vue3-openlayers marker 光晕扩散(光环扩散)(postrender 事件和 render 方法)

本篇介绍一下使用 vue3-openlayers marker 光晕扩散(光环扩散)(postrender 事件和 render 方法) 1 需求 marker 光晕扩散(光环扩散) 2 分析 marker 光晕扩散(光环扩散)使用 post…

three.js 第十一节 - uv坐标

// ts-nocheck // 引入three.js import * as THREE from three // 导入轨道控制器 import { OrbitControls } from three/examples/jsm/controls/OrbitControls // 导入lil.gui import { GUI } from three/examples/jsm/libs/lil-gui.module.min.js // 导入tween import * as T…

PUBG绝地求生·阿童木透视自瞄免费辅助 v6.24

在享受电子游戏的精彩世界时,家庭用户的数据安全和系统稳定性是不容忽视的重要方面。为了确保在使用游戏辅助工具时既能获得愉悦的游戏体验,又能保障个人数据和系统的安全,这里有一些建议和操作指南需要大家注意。 对于家庭用户而言&#x…

【高校科研前沿】四川大学刘超研究员为一作在《Geophys. Res. Lett.》发表团队成果:植被形态影响河床泥沙输运

文章简介 论文名称:Plant morphology impacts bedload sediment transport 第一作者及单位:刘超(研究员|四川大学水利水电学院) 通讯作者及单位:Yuqi Shan(四川大学灾后重建与管理研究所) 文…

Java 21的最新进展

关于Java 21的最新进展,以下是一些重要的新特性和更新: 长期支持版本(LTS):JDK 21是一个长期支持版本,这意味着它将获得五年的首要支持和扩展支持,直至2031年9月。这是继JDK 17之后的下一个LTS版…

用定时器T1中断控制两个LED以不同周期闪烁

#include<reg51.h> // 包含51单片机寄存器定义的头文件 sbit D1P2^0; //将D1位定义为P2.0引脚 sbit D2P2^1; //将D2位定义为P2.1引脚 unsigned char Countor1; //设置全局变量&#xff0c;储存定时器T1中断次数 unsigned char Countor2; //设置全局变量&#xff0c;储…

高考填报志愿,找准自己的真兴趣来选择专业

又是一年一度的高考填报志愿的时间了&#xff0c;毕业生们要根据自己的分数&#xff0c;在很短的时间内确定自己的专业。专业千万条&#xff0c;兴趣第一条。专业的选择很大程度上决定着大学的学习生活是否顺利&#xff0c;甚至决定着以后的职业生涯。在纷繁复杂的专业中&#…

C++基础编程100题-014 OpenJudge-1.3-12 计算球的体积

更多资源请关注纽扣编程微信公众号 http://noi.openjudge.cn/ch0103/12/ 描述 对于半径为r的球&#xff0c;其体积的计算公式为$ V4/3*πr^3 $&#xff0c;这里取π 3.14。 现给定r&#xff0c;求V。 输入 输入为一个不超过100的非负实数&#xff0c;即球半径&#xff0…

[leetcode]valid-triangle-number. 有效三角形的个数

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int triangleNumber(vector<int>& nums) {int n nums.size();sort(nums.begin(), nums.end());int ans 0;for (int i 0; i < n; i) {for (int j i 1; j < n; j) {int left j 1, righ…

从0搭建一个vue项目,不使用脚手架从html到vue

前言 从最开始学习web网页开始&#xff0c;搭建一个网页只需要创建一个html文件对其进行编写dom标签语言即可&#xff1b;后来分离了html&#xff0c;css和js&#xff0c;搭建一个网页开始需要文件夹&#xff0c;文件夹包含了这3类文件以及静态文件&#xff0c;图片&#xff0c…

运维.云技术学习.基于应用服务网格的灰度发布(上:理论基础篇)

运维专题 基于应用服务网格的灰度发布&#xff08;上&#xff1a;理论基础篇&#xff09; - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAdd…

S-Clustr(影子集群)V3 高并发,去中心化,多节点控制

S-Clustr 项目地址:https://github.com/MartinxMax/S-Clustr/releases/tag/S-Clustr-V3.0 Maptnh Не ограничивайте свои действия виртуальным миром. GitHub: Maptnh Jay Steinberg Man kann die Menschen, die man hasst, in d…

Arduino平台软硬件原理及使用——开源库的使用

文章目录&#xff1a; 一、库文件的下载及导入 二、库文件源代码说明 三、库文件应用举例 一、库文件的下载及导入 有关arduino开源库的导入有两种方案&#xff1a; 1.第一种方案需要借助arduino.cc网站来进行查询下载&#xff0c;然后在Arduino软件中进行导入。 2.第二种方案则…

【学习计划】文献阅读:癌症生物标志物文献综述

Cancer biomarkers: Emerging trends and clinical implications for personalized treatment 标题英文&#xff1a;Cancer biomarkers: Emerging trends and clinical implications for personalized treatment 标题中文&#xff1a;癌症生物标志物 &#xff1a; 个性化治疗的…