at24c02-at24cxx在使用之前要对所有字节初始化为0啊

问题描述

at24cxx在使用之前要对所有字节初始化为0啊
但是这样的初始化也就这一次吧,及时下次在断电上电也不再次初始化,这样该怎么写

解决方案

本人上传了一些编程的小工具,如果有兴趣可以下载,如果想了解cpu的初始化过程,可以下载我上传的相应文档。

at24cxx是iic的eeprom,可以这样做,你在at24cxx中保留一个字节作为初始化标志,建议采用0地址,这样可以兼容不同尺寸的eeprom,
1. 初始化iic
2. 初始化at24cxx中的值
a. 读取at24cxx 0地址中的值,判断是否是0xA5(当然这个值你自己可以规定,如果是表示已经初始化过了,不在初始化调到d),如果不是,进行初始化。
b. 根据你使用的at24cxx尺寸用一个循环将其除第一个字节(标志初始化为,存储0xA5的字节)都初始化为0
c. 初始化完毕将标志字节0地址写入0xA5,表示下次不需要初始化,除非不是这个值。
d. 跳出初始化at24cxx函数

时间: 2024-08-31 21:37:39

at24c02-at24cxx在使用之前要对所有字节初始化为0啊的相关文章

嵌入式-AT24CXX使用之前每一个字节都要先初始化为0吗,

问题描述 AT24CXX使用之前每一个字节都要先初始化为0吗, 怎么定义一个变量,吧这个变量给24cxx的某一个字节,而这个变量只执行一下,不然下一个再把这个变量给24cxx的时候,24cxx里面的数就又变了,只需要初始化一次, 解决方案 没看明白你想要表达什么意思,根据你的标题理解你想问AT24CXX使用之前是否初始化.AT24CXX是eeprom使用前不必初始化,直接写数据即可,如果你非要初始化为特定的值,可以再做AT24CXX初始化中添加一个函数,这个函数目的是初始化完毕iic,在初始化A

linux驱动学习(八) i2c驱动架构(史上最全) davinc dm368 i2c驱动分析【转】

转自:http://blog.csdn.net/ghostyu/article/details/8094049 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 预备知识 linux设备驱动到底复杂在什么地方 linux驱动中 i2c驱动架构 架构层次分类 具体分析 i2c_driver i2c_client i2c_adapter i2c_algorithm 梳理图 ov2715设备i2c驱动源码分析 预备知识 在阅读本文最好先熟悉一种i2c设备的驱动程序,并且浏览一下i

I.MX6 AT24Cxx eeprom Linux i2c-gpio

/************************************************************************** * I.MX6 AT24Cxx eeprom Linux i2c-gpio * 声明: * 很多时候当我们使用Linux系统管理硬件的时候,更多的是通过芯片中的控制器, * 但有时候,我们也会遇到芯片中的控制不够用,或者在设计的过程中出现意外,如没 * 有想到控制器存在,本文中的内容就是因为I2C中第四个控制器不存在,但硬件上却 * 认为其存在,

嵌入式-当往at24cxx中写一个字节时,这个字节所在页的内容会全部擦除吗

问题描述 当往at24cxx中写一个字节时,这个字节所在页的内容会全部擦除吗 at24cxx是按页擦除的吗,如果我就在某个地址写入一个字节,是不是这个地址所在的也的内容都会被擦除,然后把写入的那个字节写入,那样的话这一页的其他内容就被擦除了, 解决方案 你说的没错,你要更新一个字节,就必须先读取出来整个页,然后修改,然后整体写回 解决方案二: 厂商数据手册: http://www.atmel.com/Images/doc0180.pdf (第9页: BYTE WRITE) 应该可以按字节写入吧

单片机驱动AT24C02存储芯片

AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗.AT24C02有一个8字节页写缓冲器.该器件通过IIC总线接口进行操作,有一个专门的写保护功能. 管脚描述 管脚名称 功能 A0 A1 A2 器件地址选择 SDA 串行数据/地址 SCL 串行时钟 WP 写保护 Vcc +1.8V~ 6.0V 工作电压 Vss 地 了解了什么是AT24C02之后,我们具体要如何来操作它呢? 操作它之前,我们先来了解一下I

单片机-stm32开发版可以正常使用at24c02,

问题描述 stm32开发版可以正常使用at24c02, 我把02芯片换成24c32以后,在头文件中把类型换成了对应的32,但是上电以后确实不能读写的,可能是什么原因 解决方案 http://www.51hei.com/bbs/dpj-35372-1.html 解决方案二: AT24C02和AT24C32的区别 I2C调试小技巧AT24C02STM32外设驱动篇--AT24C02(I2C接口) 解决方案三: 你提的问题资源很少,无法分析不过可以给你提出一些建议 对于芯片型号的更换,即使是同一系列的

stm32-STM32 I2C接口实验陷入死循环的问题

问题描述 STM32 I2C接口实验陷入死循环的问题 麻烦大家帮忙看看下面的STM32代码 /** @说明 向AT24C02指定地址写入一个字节数据 @参数 address:AT24C02内部存储地址 @参数 info:写入数据 @返回值 None*/ uint8_t x24c02_write(unsigned char addressunsigned char info){ I2C_GenerateSTART(I2C1 ENABLE); while(!I2C_CheckEvent(I2C1 I

iic-at24cxx中每片芯片多少页,每页多少字节怎么理解

问题描述 at24cxx中每片芯片多少页,每页多少字节怎么理解 解决方案 页 * 每页大小=芯片容量(这个是不变的) 页越大,那么页越少,所以需要的地址就越少. 每次读取和写入的单位是一个页,哪怕只改变其中的一个字节. 解决方案二: 以1K为例,8B为一页,1Kb/8=128B,这样会有16页.A0,A1,A3这三条线会最为片选信号,如果有一片就可以全部接地: 然后操作的时候,我记得是先发一个地址,然后再根据R/W进行读写: 地址是0x00,0x01.... 如果需要我可以把的程序给你 解决方案

实验4 IIC通讯与EEPROM接口

1.       用C语言编程,利用定时器产生一个0~99秒变化的秒表,并且显示在数码管上,每过一秒将这个变化写入实验板上AT24C02,当关闭实验板电源,并再次打开实验板电源时,单片机从AT24C02中将原来写入的数据读出来,接着继续变化在数码管上.   #include<reg51.h> #define uchar unsigned char #define uint unsigned int   //=========全局变量区==============================