IIC协议理解及驱动OLED屏

1.iic协议是串行半双工总线,主要应用于近距离,低速芯片之间通信。

两根线 SCL SDA

2.IIC总线通讯过程

1.主机发送起始信号占用总线

2.主机发送一个字节数据指明从机地址和后续字节的传输方向。

七位地址位+一位来调节后续字节传输方向

最后一位:0  主机发送

最后一位:1  主机接收

3.被寻址的从机发送应答信号回应主机

4.发送器发送一字节数据

5.接收器发送应答信号回应发送器

注意这两部是发送器和接收器  不再是主机从机。至于发送器和接收器取决于 第二步最后一位是0还是1,如果是主机发送,发送器是主机,应答器是从,如果是主机接收,发送器是从机,应答器是主机。

6.通信完成后发送停止信号

1.起始信号

void IIC_Start()
{IIC_setSDAMode_Out();IIC_SDA_OUT(1);                             //总线释放状态IIC_SCL_OUT(1);delay_us(5);IIC_SDA_OUT(0);                             //SDA跳变为低电平delay_us(5);IIC_SCL_OUT(0);        delay_us(5);}

2.停止信号

void IIC_Stop()
{IIC_setSDAMode_Out();IIC_SDA_OUT(0);          IIC_SCL_OUT(0);delay_us(5);IIC_SCL_OUT(1);                              //SDA跳变为高电平delay_us(5);IIC_SDA_OUT(1);        delay_us(5);}

 

3.应答信号

标注部分为应答信号,在第九个周期,先将时钟线拉高,然后判断sda线的状态。

代码实现

u8 IIC_waitAck(){    u8 ack =0;  IIC_setSDAMode_In();  IIC_SCL_OUT(0);             //准备时序  delay_us(5);  IIC_SCL_OUT(1);  delay_us(5);  if(IIC_SDA_IN)  {        ack =1;  }  else  {        ack =0;    }  IIC_SCL_OUT(0);              //拉低,表示应答完成  delay_us(5);  return  ack;}

 

iic驱动OLED 屏幕显示结果

 

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

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

相关文章

echarts静态饼图

<div class"cake"><div id"cakeChart"></div></div> import * as echarts from "echarts";mounted() {this.$nextTick(() > {this.getCakeEcharts()})},methods: {// 饼状图getCakeEcharts() {let cakeChart echart…

Day_14 > 指针进阶(3)> bubble函数

目录 1.回顾回调函数 2.写一个bubble_sort函数 2.1认识一下qsort函数 ​编辑2.2写bubble_sort函数 今天我们继续深入学习指针 1.回顾回调函数 我们回顾一下之前学过的回调函数 回调函数就是一个通过函数指针调用的函数 如果你把函数的指针&#xff08;地址&#xff09;…

某计费管理系统任意文件读取漏洞

文章目录 声明一、漏洞描述二、漏洞复现声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。 一、漏洞描述 蓝海…

前端面试要点

0914 JScript深拷贝和浅拷贝&#xff08;js解构赋值算哪个&#xff1f;&#xff09; 深拷贝和浅拷贝 回流和重绘 回流和重绘 webpack打包流程 Webpack打包 虚拟DOM 虚拟DOM git合并分支 git合并分支 CSS盒子模型 CSS盒子模型 0911 WebPack分包 webpack分包 ts泛型 ts泛型 优化…

Java入坑之代理

一、代理模式和静态代理 1.1代理模式 代理模式 - Proxy Pattern, 23个经典模式的一种&#xff0c;又称委托模式 -为目标对象提供(包装)了一个代理&#xff0c;这个代理可以控制对目标对象的访问 外界不用直接访问目标对象&#xff0c;而是访问代理对象&#xff0c;由代理对象再…

重建大师提交空三后引擎状态是等待,怎么开启?

答&#xff1a;图片中这是在自由网空三阶段&#xff0c;整个AT都是等待中&#xff0c;可以修改任务目录和监控目录看一下&#xff0c;先设置引擎&#xff0c;再提交空三。

蓝牙资讯|苹果新款AirPods Pro支持Vision Pro无损音频和IP54防水防尘

苹果公司宣称&#xff0c;USB-C 能够带来更多灵活性&#xff0c;现在用户可以使用手机的 USB-C 接口&#xff0c;为 AirPods Pro 耳机盒充电。 虽然苹果没有详细介绍这款耳机&#xff0c;但在今天的新闻稿中依然透露了一些不一样的地方&#xff0c;例如新款 AirPods Pro 2 升…

k8s node环境部署(三)

1、添加node1、node2环境 前面配置master环境的截图最后一段 复制下来 分别在node主机执行 kubeadm join 192.168.37.132:6443 --token p5omh3.cqjqt8ymrwkdn2fc \ --discovery-token-ca-cert-hash sha256:608a1cbadd060cfdeac2fae84c19609061b750ab51bf9a19887ff7ea…

基于小程序的理发店预约系统

一、项目背景及简介 现在很多的地方都在使用计算机开发的各种管理系统来提高工作的效率&#xff0c;给人们带来很多的方便。计算机技术从很大的程度上解放了人们的双手&#xff0c;并扩大了人们的活动范围&#xff0c;是人们足不出户就可以通过电脑进行各种事情的管理。信息系…

dlib库详解及Python环境安装指南

dlib是一个开源的机器学习库&#xff0c;它包含了众多的机器学习算法&#xff0c;例如分类、回归、聚类等。此外&#xff0c;dlib还包含了众多的数据处理、模型训练等工具&#xff0c;使得其在机器学习领域被广泛应用。本文将详细介绍dlib库的基本概念、功能&#xff0c;以及如…

腾讯云4核8G服务器选CVM还是轻量比较好?价格对比

腾讯云4核8G云服务器可以选择轻量应用服务器或CVM云服务器标准型S5实例&#xff0c;轻量4核8G12M服务器446元一年&#xff0c;CVM S5云服务器935元一年&#xff0c;相对于云服务器CVM&#xff0c;轻量应用服务器性价比更高&#xff0c;轻量服务器CPU和CVM有区别吗&#xff1f;性…

【C++】匿名对象 ① ( 匿名对象引入 | 匿名对象简介 | 匿名对象概念 | 匿名对象作用域 - 对象创建与销毁 )

文章目录 一、匿名对象引入二、匿名对象简介1、匿名对象概念2、匿名对象作用域 - 对象创建与销毁3、代码示例 - 创建并使用匿名对象 一、匿名对象引入 匿名对象引入 : 在上一篇博客 【C】拷贝构造函数调用时机 ② ( 对象值作为函数参数 | 对象值作为函数返回值 ) 中 , 讲到了 如…