重点说明⇢这个地址一次只能选中一行(全体目光向我看齐)所以一般在地址总线之前我们都会加一个译码器(138译码器) AT24C02 AT24C02是一种可以实现掉电不丢失的存储器。...例:就像我们单片机在运行时候的参数吖~像温度传感器高于某一个设定的阈值会报警,然后这个阈值还是可以调节的,然后把它调节好的时候就可以存进AT24C02。...注→主机相当于是单片机而AT24C02相当于是从机,在所有的线都是由主机进行控制的。...我们把SDA置1就相当于释放,我们从机(AT24C02)是完全不会干预我们的这个通信线的。...换言之我们的主机(单片机)释放掉SDA数据线把这个线的控制权交给从机(AT24C02),此时就是从机(AT24C02)拿到了控制权。
---恢复内容开始--- 这篇文章是写给一个学弟看的,关于IIC,关于24C02的单字节写入\读取..页写入和读取,,学弟总是害怕协议,,,我总是对人家说,本来...
前言 AT24C02是IIC接口的EEPROM存储芯片,这颗芯片非常经典,百度搜索可以找到非常多的资料,大多都是51、STM32单片机的示例代码,大多采用模拟时序、裸机系统运行。...当前文章介绍在Linux系统里如何编写AT24C02的驱动,并且在应用层完成驱动读写测试,将AT24C02的存储空间映射成文件,在应用层,用户可以直接将AT24C02当做一个普通文件的形式进行读写,偏移文件指针...硬件原理图 当前的开发板上自带了一颗EEPROM存储芯片(具体型号是24AA025E48,代码与AT24C02一样的),原理图如下: 自带的内核里没有内置EEPROM的驱动: 存储芯片的数据手册介绍
蓝桥杯开发板板载一个AT24C02的2KB的EEPROM芯片,主要考察对IIC通信的掌握。IIC通信因其需要的数据线少、通信方式可自己决定等优点在嵌入式开发板中运用很多。...AT24C02需要2根数据线(一根为数据线,一根为时钟线)就可以与开发板进行通信。 IIC初始化 因为EEPROM的通信方式IIC通信,所以需要对IIC进行初始化。...IIC初始化代码为 i2c_init(); AT24C02指定地址读取数据 /** * @说明 从AT24C02指定地址读出一个字节数据 * @参数 address:AT24C02...比赛的时候只提供IIC原始函数,AT24C02的读写代码需要自己组织代码,难点是逻辑顺序会记错,导致代码无法使用 AT24C02向指定地址写入指定数据 /** * @说明 向AT24C02...需要注意的是AT24C02的地址是从0x00~0xff,如果超出该地址值会出现错误。地址和写入或读取的数据的类型都是字符型,其他类型的数据有可能出现错误。
概述: 该文主要描述了,AT24C02简介、AT24C02特性、硬件原理图、管脚描述、从器件地址、写周期限制、读写操作时序。...1、AT24C02简介 AT24C01/02/04/08/16是一个1K/2K/4K/8K/16K位(AT24C02大小为256字节)串行CMOS E2PROM内部含有128/256/512/...对应AT24C02硬件原理图而言,A0、A1、A2、三个脚被硬件接地,即A0=0、A1=0、A2=0。...所以AT24C02读地址为1010 0001(0xA1),AT24C02写地址为1010 0000(0xA0)。 ...对于AT24C02而言,在一页内,每写一个字节写指针+1,当大于16字节时,又回到第一个字节的位置,先前写入的数据将会被覆盖。
等待AT24C02应答、低电平有效 4....等待AT24C02应答、低电平有效 6. 发送一个字节的数据,这个数据就是想存储到AT24C02里保存的数据。 7. 等待AT24C02应答、低电平有效 8....等待AT24C02应答、低电平有效 6. 可以循环发送8个字节的数据,这些数据就是想存储到AT24C02里保存的数据。...等待AT24C02应答、低电平有效 8....等待AT24C02应答、低电平有效 4.
USB2S 板上已有 1 片 AT24Cxx(默认为 AT24C02),设备地址为 0xA0。...A0 00 2 字节数据,AT24C02 芯片地址+要操作的EEPROM 地址 00 01 02 03 向 AT24C02 写入的 4 个字节数据[STOP] 从目标接口输出停止信号,结束本次通讯...1.1.3 从 AT24C02 读取数据 从 AT24C02 读取 4 个字节数据,数据起始地址为 0。...A0 00 2 字节数据,AT24C02 芯片地址+要操作的EEPROM 地址 [START] 从目标接口输出开始信号 [WT1H] 从目标接口输出 1 个字节,后续数据类型为 16 进制。...A1 AT24C02 芯片的读地址 [RD4N] 从目标接口连续读取 4 个字节数据 [STOP] 从目标接口输出停止信号,结束本次通讯 1.1.4 跨页写入数据 AT24C02 每页为 8
AT24C02是一颗2kbit(256字节)的EEPROM。 实验板的原理图上描述是24C16,实际实验板上使用的具体芯片型号是AT24C02。...4.6.2 AT24C02介绍 AT24C02是一个2K位串行EEPROM,内部含有256个字节空间。AT24C02内部有一个8字节页写缓冲器。...图4-6-4 AT24C02设备地址 AT24C02的一个写周期时间为10ms,单片机向AT24C02传输数据时,AT24C02是将数据暂存在8字节的缓冲区里的,单片机发送完数据之后需要等待10ms的时间...写一个字节的总时序 图4-6-10 (6) 向AT24C02写一页数据的总时序 图4-6-11 (7) 从AT24C02当前地址读取一个字节的总时序 图4-6-12 (8)....从AT24C02指定位置读取指定长度数据的总时序 图4-6-13 4.6.4 AT24C02读写数据示例代码 下面代码演示了AT24C02写入数据和读取数据的过程,在主函数里,调用AT24C02写字节函数向指定空间存入数据
树莓派与AT24C02 EEPROM接口实验电路 以树莓派3B为例,RPi 3B与AT24C02 EEPROM接口实验电路原理图见图4所示。...设备0#字节单元写入0x60,i2cget 读取AT24C02设备0#字节单元内容显示为0x60,说明写入的数据与读取的数据一致,树莓派读写AT24C02设备操作正常。...图6 读写AT24C02 I2C EEPROM Python程序 I2CAT24C02.py程序顺序读取AT24C02中的256字节单元显示结果见图7所示。 ...图7 Python程序读取AT24C02设备256字节单元的内容并显示 还可使用I2C Tools的i2cdump命令显示AT24C02中的256字节单元内容(见图8)。...由图7和图8可知,读取AT24C02设备字节单元内容的显示结果与写入到AT24C02设备字节单元的数据完全相同。
AT24C02的原理图如下(该原理图中有bug,A0的上拉电阻无效,实际A0为低电平): ?...AT24C02驱动的编写 确定IIC器件地址 根据AT24C02的 Datasheet 可知AT24C02有2K bit,即256B,分为32页,每页8个字节,结合数据手册和原理图可以得知,板载AT24C02...任意地址写一个字节 根据AT24C02的数据手册可知,AT24C02写一个字节的格式如下: ?...的数据手册可知,AT24C02读一个字节的格式如下: ?...任意地址连续写多个字节 AT24C02连续写字节的时候需要注意,不能使用写单个字节函数连续的写入,因为AT24C02分为了32页,每页是8个字节,如果连续的单字节写入8个字节后,会重复的继续往该页写数据
I2C软件框架 以I2C接口的存储设备AT24C02为例: APP: 提出要求:把字符串"www.100ask.net"写入AT24C02地址16开始的地方 它是大爷,不关心底层实现的细节 它只需要调用设备驱动程序提供的接口...AT24C02驱动: 它知道AT24C02要求的地址、数据格式 它知道发出什么信号才能让AT24C02执行擦除、烧写工作 它知道怎么判断数据是否烧写成功 它构造好一系列的数据,发给I2C控制器
A2、A1、A0引脚电平需要由原理图决定,假设全接电源地,则如果需要向AT24C02写数据,则发送地址“1010 0000”,如果需要向AT24C02读数据,则发送地址“1010 0001”。...假设开发板有多个AT24C02挂在同一I²C总线上,通过这个规则,只需设计电路时,让A2、A1、A0引脚电平不同,即可区分两个AT24C02。...U4的7脚为写保护引脚(Write Protect,WP),当该引脚为高,则禁止写AT24C02,这里直接拉低WP,任何时候都可直接写AT24C02。...9~33行:写AT24C02一字节数据; – 12行:发送I2C开始信号; – 15行:发送AT24C02的设备地址,最后一位表示写操作; – 18~26行:根据EEPROM型号,调用不同的数据地址长度设置函数...8位,AT24C04/08/16 为16位); – 63行:再次发送I2C开始信号; – 66行:发送AT24C02的设备地址,最后一位表示读操作; – 69行:读取AT24C02数据,且无需ACK
概要多功能电子密码锁系统由AT89C52单片机最小系统、4×4矩阵键盘、LCD1602显示、AT24C02存储模块以及报警系统等组成,具有设置、修改六位用户密码、超次报警、超次锁定、密码错误报警等功能。...(4)此时,输入6位新密码,点击“重设”键,LCD显示“inputagain”,再次输入6位新密码,点击“重设”键,密码重设成功,此时LCD显示“ResetPassword OK”,新密码被写入AT24C02...即使仿真结束,或单片机复位,AT24C02存储的密码都不会丢失。...DisplayListChar(0,1,Error);write_1602com(er);for(j=0;j<16;j++){write_1602dat(Error[j]);}资源内容(1)基于LCD1602和AT24C02
发送应答 接收应答 I2C数据帧 AT24C02数据帧 字节写 随机读 代码部分 遇到的问题 代码 硬件 ---- 今天我们来介绍一下AT24C02,首先呢,它是一种可以实现掉电不丢失的存储器...,可用于保存单片机运行时想要永久保存的数据信息,在介绍AT24C02之前,我们先来介绍一下存储器!...AT24C02介绍 接下来我们来简单介绍一下AT24C02吧!...数据帧 AT24C02数据帧,其实不止这几个,但我们在这里就简单介绍一下这两种!...的六个时序结构拼接而成,所以AT24C02时序帧只需要将他们拼装起来,有点类似与接口和继承的味道,好了,我们先将代码给出!
AT24C02介绍 AT24C02是通过I2C实现通讯的,是一个存储芯片,能够存储2Kb(256KB)数据 4.1它的的硬件图如下: ?...其中A2~A0,是这个24C02设备的硬件地址,接GND表示硬件地址都为0 4.2其中AT24C02的数据格式如下所示: ? 4.3打开AT24C02数据手册,它的设备地址如下图所示: ?...AT24C02时序图介绍 5.1写时序介绍 ?
AT24C02访问方法 2.1 设备地址 从芯片手册上可以知道,AT24C02的设备地址跟它的A2、A1、A0引脚有关: 打开I2C模块的原理图(这2个文件是一样的): STM32MP157\开发板配套资料...IMX6ULL\开发板配套资料\原理图\Extend_modules\eeprom.zip\i2c_eeprom_module_v1.0.pdf 如下: 从原理图可知,A2A1A0都是0,所以AT24C02
一、概要 多功能电子密码锁系统由AT89C52单片机最小系统、4×4矩阵键盘、LCD1602显示、AT24C02存储模块以及报警系统等组成,具有设置、修改六位用户密码、超次报警、超次锁定、密码错误报警等功能...(4)此时,输入6位新密码,点击“重设”键,LCD显示“inputagain”,再次输入6位新密码,点击“重设”键,密码重设成功,此时LCD显示“ResetPassword OK”,新密码被写入AT24C02...即使仿真结束,或单片机复位,AT24C02存储的密码都不会丢失。
4、STM32F1xx/STM32F4xxHAL库 5、IIC: 使用硬件IIC1 知识概括: 通过本篇博客您将学到: IIC的基本原理 STM32CubeMX创建IIC例程 HAL库IIC函数库 AT24C02...应答出现在每一次主机完成8个数据位传输后紧跟着的时钟周期,低电平0表示应答,1表示非应答, 这里我们仅介绍基于AT24C02的IIC通信 以AT24C02为例子 24C02是一个2K Bit的串行...所以这个过程需要一定的时间,AT24C02这个过程是不超过5ms!...Mem_Write是2个地址,Master_Transmit只有从机地址 硬件IIC读取AT24C02 在mian.c文件前面声明,AT24C02 写地址和读地址 ,定义写数据数组,和读数据数组 /...这不是HAL库的bug,而是AT24C02的限制,其他的EEPROM可以支持更多byte的写入。
是否支持键盘 // Support KeyBoard // Support using keyboard #define _SUPPORT_KEYBOARD // //是否支持AT24C02...// Support AT24C02 // Support using AT24C02 to store module parameters #define _SUPPORT_AT24C02
蓝桥杯单片机AT24C02芯片上电自启动读取数据,写入数据的实现也是挺重要的一个模块,往年的考试就有考到过,下面就来解说一下具体的分析过程吧。...// 消隐 select(7); P0 = num; P2 = P2 & 0x1f; } void write_at24c02(u8 add, u8 data1) // 往AT24C02
领取专属 10元无门槛券
手把手带您无忧上云