STM32F407 I2C 个人笔记
源代码;https://github.com/YuQiao0303/STM32F407-Examples/tree/master/24.IIC
概述
- I2C (IIC, Inter-Integrated Circuit),两线式串行总线,
- 用于连接微控制器及其外围设备。
- 它是由数据线SDA和时钟SCL构成的串行总线
- 在CPU与被控IC之间、IC与IC之间进行双向传送
- IIC是半双工通信方式
协议
①空闲状态
②开始信号
③停止信号

④应答信号
- 发送器每发送一个字节(8位)
- 接收器在第九个时钟脉冲前,将SDA拉低,
- 并在该时钟的高电平期间保持稳定低电平
- 这就是一个有效应答位ACK,表示该字节接收成功
- 否则如果应答信号是低电平,则为非应答位(NACK),表示该字节没有接收成功
⑤数据的有效性
时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。
即:数据在SCL的上升沿到来之前就需准备好。并在在下降沿到来之前必须稳定。
⑥数据传输
- 在I2C总线上传送的每一位数据都有一个时钟脉冲相对应(或同步控制),
- 即在SCL串行时钟的配合下,在SDA上逐位地串行传送每一位数据。
- 数据位的传输是边沿触发。
EEPROM(24C02)
本次实验,利用I2C通信协议,将数据写入24C02存储芯片。
芯片概述

芯片读写时的地址(device address)

芯片时序图


STM32F407 I2C 个人笔记的更多相关文章
- linux下i2c驱动笔记 转
1. 几个基本概念 1.1. 设备模型 由 总线(bus_type) + 设备(device) + 驱动(device_driver) 组成,在该模型下,所有的设备通过总线连接起来,即使有些设备没有连 ...
- I2C操作笔记——以 AT24C04为例
1.前言 对于大多数project师而言,I2C永远是一个头疼的问题.相比UART和SPI而言,I2C的时序要复杂一些,I2C组合变化也丰富一些.在这里以AT24C04为例说明I2C使用过程中 ...
- MSP430F5438 I2C学习笔记——AT24C02
0.前言 对于大多数单片机来说,I2C成了一个老大难问题.从51时代开始,软件模拟I2C成了主流,甚至到ARMCortex M3大行其道的今天,软件模拟I2C依然是使用最广的方法.虽然软件模拟可以解决 ...
- i2c驱动笔记
基于bcm5300x芯片 注册平台总线设备,设备名bcm5300x_i2c,通过名称与驱动进行匹配. 注册平台总线驱动.驱动名称"bcm5300x_i2c",与设备进行匹配. dr ...
- i2c接口笔记
一. i2c基础知识 1. NACK信号:当在第9个时钟脉冲的时候SDA线保持高电平,就被定义为NACK信号.Master要么产生STOP条件来放弃这次传输,或者重复START条件来发起一个新的开始. ...
- STM32F407+STemwin学习笔记之STemwin移植补充Touch
原文地址:http://www.cnblogs.com/NickQ/p/8857213.html 环境:keil5.20 STM32F407ZGT6 LCD(320*240) STemwin:S ...
- STM32F407+STemwin学习笔记之STemwin移植
原文链接:http://www.cnblogs.com/NickQ/p/8748011.html 环境:keil5.20 STM32F407ZGT6 LCD(320*240) STemwin:S ...
- STM32F407 SPI 个人笔记
概述 SPI ,Serial Peripheral interface,串行外围设备接口 全双工,同步的通信总线,四根线 主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器 ...
- STM32F407 DAC 个人笔记
DAC框图 VDDA:模拟电源输入 VSSAL:模拟电源接地输入 Vref+:正模拟参考电压输入 -------------- DORx:输入数字寄存器 DAC_OUT:模拟输出通道 DAC_OUT1 ...
随机推荐
- 第十章 设计用户界面 之 构建UI布局
1. 概述 本章内容包括:实现可在不同区域重用的片段.使用Razor模板设计和实现页面.设计可视结构的布局.基于模板页开发. 2. 主要内容 2.1 实现可在不同区域重用的片段 最简单的重用方式就是在 ...
- [转]Java 8 Optional类深度解析(null处理)
原文链接:http://www.importnew.com/6675.html 本文由 ImportNew - 高俊阳 翻译自 javacodegeeks.欢迎加入翻译小组.转载请见文末要求. 身为一 ...
- 安卓linux真机调试
原文链接:https://www.zhihu.com/question/35517675 你使用的是Linux,请遵以下步骤执行. 以root用户执行adb kill-server 以root用户执行 ...
- intelliJ idea 下载安装
Intellij IDEA是公认的java开发最好的工具,必须学会. 1. 打开网址 https://www.jetbrains.com/ 2. 点击 Intellij IDEA 图标连接,如下图 3 ...
- PL/SQL 多表关联UPDATE
假设有两个表A和B,A表字段a,b,c,d,B表字段b,e,f,两表的关联条件是字段b,现在想做个data patch,欲将B表中的字段e的值patch给A表的字段c. 有如下两种方法: 1 upda ...
- 动画 iOS基础
动画 iOS基础 1. basic animation 基础动画 一个基础动画 在一个开始值和一个结束值之间运动 messageLabel.alpha=0.0; [UIView ani ...
- ubuntu 14.04 离线部署docker
hett@hett-virtual-machine:~$ lsb_release -aNo LSB modules are available.Distributor ID: UbuntuDes ...
- 查看进程lsof
查看8000端口 lsof -i :8000 杀死进程 pkill -ns <pid>
- sourcegrid统计报表画法以及EXCEL导出内容代码完全版
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 用dfs遍历联通块(优化)
一.题目(CF 598D) 输入一个n x m的字符矩阵,求从某个空点出发,能碰到多少面墙壁,总共询问k次.(3 ≤m,n ≤1000,1 ≤ k ≤ min(nm,100 000)) 二.解题思路 ...