<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>I2C on Zesean 的博客</title><link>https://zeseanblog.top/tags/i2c/</link><description>Recent content in I2C on Zesean 的博客</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Tue, 01 Sep 2026 22:58:08 +0800</lastBuildDate><atom:link href="https://zeseanblog.top/tags/i2c/index.xml" rel="self" type="application/rss+xml"/><item><title>IIC 通信协议学习笔记</title><link>https://zeseanblog.top/p/iic/</link><pubDate>Sat, 19 Apr 2025 09:30:00 +0800</pubDate><guid>https://zeseanblog.top/p/iic/</guid><description>&lt;h3 id="111-i2c硬件"&gt;&lt;a href="#111-i2c%e7%a1%ac%e4%bb%b6" class="header-anchor"&gt;&lt;/a&gt;11.1 I2C硬件&#13;&#10;&lt;/h3&gt;&lt;p&gt;SCL,SDA，一条I2C总线可接很多设备，SCL,SDA放上拉电阻&lt;/p&gt;&#10;&lt;img src="images/image-20250828205720777.png" alt="image-20250828205720777" style="zoom:67%;" /&gt;&#10;&lt;h3 id="112-传输数据类比"&gt;&lt;a href="#112-%e4%bc%a0%e8%be%93%e6%95%b0%e6%8d%ae%e7%b1%bb%e6%af%94" class="header-anchor"&gt;&lt;/a&gt;11.2 传输数据类比&#13;&#10;&lt;/h3&gt;&lt;p&gt;如何通过IIC传数据，&lt;/p&gt;&#10;&lt;p&gt;主设备：一主多从，可把数据从主设备发到从设备，也可从设备发到主设备&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;发送&lt;/strong&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;主设备：开始(start)&lt;/p&gt;&#10;&lt;p&gt;主设备：A，我把数据发你(地址/方向)&lt;/p&gt;&#10;&lt;p&gt;A：收到(回应)&lt;/p&gt;&#10;&lt;p&gt;主设备：发送数据(传输)&lt;/p&gt;&#10;&lt;p&gt;A：收到后，告诉主设备(回应)&lt;/p&gt;&#10;&lt;p&gt;主设备：结束(停止)&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;接收&lt;/strong&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;主设备：开始(start)&lt;/p&gt;&#10;&lt;p&gt;主设备：B，把数据发我(地址/方向)&lt;/p&gt;&#10;&lt;p&gt;B：收到(回应)&lt;/p&gt;&#10;&lt;p&gt;B：把数据发给主设备(传输)&lt;/p&gt;&#10;&lt;p&gt;主设备：收到数据后，告诉A(回应)&lt;/p&gt;&#10;&lt;p&gt;主设备：结束(停止)&lt;/p&gt;&#10;&lt;h3 id="113-iic传输数据格式"&gt;&lt;a href="#113-iic%e4%bc%a0%e8%be%93%e6%95%b0%e6%8d%ae%e6%a0%bc%e5%bc%8f" class="header-anchor"&gt;&lt;/a&gt;11.3 IIC传输数据格式&#13;&#10;&lt;/h3&gt;&lt;h4 id="1131写操作"&gt;&lt;a href="#1131%e5%86%99%e6%93%8d%e4%bd%9c" class="header-anchor"&gt;&lt;/a&gt;11.3.1写操作&#13;&#10;&lt;/h4&gt;&lt;ul&gt;&#10;&lt;li&gt;主设备发出start信号&lt;/li&gt;&#10;&lt;li&gt;发出设备地址，方向(读1/写0)&lt;/li&gt;&#10;&lt;li&gt;从设备发出应答信号&lt;/li&gt;&#10;&lt;li&gt;主设备发送一字节数据，等待回应&lt;/li&gt;&#10;&lt;li&gt;每传输一字节，接收方回应一次，在传输下一个数据&lt;/li&gt;&#10;&lt;li&gt;数据发送完成，主设备发送stop信号&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;img alt="image-20250828211121367" class="gallery-image" data-flex-basis="1566px" data-flex-grow="652" height="99" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://zeseanblog.top/p/iic/images/image-20250828211121367.png" width="646"&gt;&lt;/p&gt;&#10;&lt;h4 id="1132读操作"&gt;&lt;a href="#1132%e8%af%bb%e6%93%8d%e4%bd%9c" class="header-anchor"&gt;&lt;/a&gt;11.3.2读操作&#13;&#10;&lt;/h4&gt;&lt;p&gt;&lt;img alt="image-20250828212451496" class="gallery-image" data-flex-basis="1475px" data-flex-grow="614" height="108" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://zeseanblog.top/p/iic/images/image-20250828212451496.png" width="664"&gt;&lt;/p&gt;&#10;&lt;h4 id="1133-iic信号"&gt;&lt;a href="#1133-iic%e4%bf%a1%e5%8f%b7" class="header-anchor"&gt;&lt;/a&gt;11.3.3 IIC信号&#13;&#10;&lt;/h4&gt;&lt;p&gt;IIC协议栈数据传输单位是字节，但是要用到9个时钟，前面8个时钟用来传输8数据，第9个始终用来传输回应信号，先传输最高位&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;开始信号(S)：SCL为高时，SDA由高跳低，开始传输数据&lt;/li&gt;&#10;&lt;li&gt;结束信号(P)：SCL为高时，SDA由低跳高，结束传输数据&lt;/li&gt;&#10;&lt;li&gt;响应信号(ACK)：接收到8位数据，第九个时钟周期，拉低SDA&lt;/li&gt;&#10;&lt;li&gt;SDA数据必须在SCL高时稳定，只能在SCL为低时变化&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;img alt="image-20250828213228809" class="gallery-image" data-flex-basis="708px" data-flex-grow="295" height="335" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://zeseanblog.top/p/iic/images/image-20250828213228809.png" srcset="https://zeseanblog.top/p/iic/images/image-20250828213228809_hu_9c82e3ce5d874844.png 800w, https://zeseanblog.top/p/iic/images/image-20250828213228809.png 989w" width="989"&gt;&lt;/p&gt;&#10;&lt;h4 id="1134-协议细节"&gt;&lt;a href="#1134-%e5%8d%8f%e8%ae%ae%e7%bb%86%e8%8a%82" class="header-anchor"&gt;&lt;/a&gt;11.3.4 协议细节&#13;&#10;&lt;/h4&gt;&lt;p&gt;1.SDA引脚必须双向IO，因为有发有收&lt;/p&gt;&#10;&lt;ol start="2"&gt;&#10;&lt;li&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;img src="images/image-20250828214833582.png" alt="image-20250828214833582" style="zoom:67%;" /&gt;&#10;&lt;img src="images/image-20250828214855838.png" alt="image-20250828214855838" style="zoom:67%;" /&gt;&#10;&lt;img src="images/image-20250828215155892.png" alt="image-20250828215155892" style="zoom:67%;" /&gt;&#10;</description></item></channel></rss>