I2C协议

news/2024/11/15 4:06:46/

目录

I2C协议

E2PROM  AT24C02

I2C协议

假设主设备想要向从设备发送数据:
1. 主发送器发送START条件并寻址从接收器
2. 主发送器将数据发送到从接收器
3. 主发送器以STOP条件终止传输
如果主设备想要从从设备接收/读取数据:
1. 主发送器发送START条件并寻址从接收器
2. 主接收器发送请求读取的寄存器
3. 主接收器从从发送器接收数据
4. 主发送器以STOP条件终止传输
SCL:串行时钟
SDA:串行数据线
启动和停止条件:
与主设备的I2C通信由主设备发送START条件启动,并由主设备发送STOP条件终止。 当SCL为高电平时,SDA线上由高到低的转换定义了START条件。 当SCL为高电平时,SDA线上由低到高的转换定义了STOP条件。

一个字节由SDA线上的8位组成,数据首先传输最高位(MSB),SDA线上的数据必须在时钟周期的高电平期间保持稳定,因为当SCL为高电平时数据线的变化被解释为控制命令(START或STOP)。要在SCL是高电平前操作SDA。

PB6  PB7引脚。

总结:

时钟信号SCL为高时,SDA必须保持稳定,SCL为低时,SDA才可以变化。

写数据时:SCL为低时,改变SDA。

读数据时:SCL为高时,读取IO电平。

E2PROM  AT24C02

器件地址:1010000(R/W') 0xA0表示51向AT24C02写数据,0xA1表示51读AT24C02的数据。

WP:写入保护,当WP为高电平时,无法写入数据。

总共能存256个字节,写入周期5毫秒。

把资料包提供的I2C.c和I2C.h复制到文件里。

比赛中需要自己编写E2PROM的读写函数,记得声明:

//写24C02
void EEPROM_Write(u8 add,u8 dat)
{I2CStart(); I2CSendByte(0xa0); I2CWaitAck(); I2CSendByte(add);	I2CWaitAck(); I2CSendByte(dat); I2CWaitAck(); I2CStop();HAL_Delay(5);
}
//读24C02
u8 EEPROM_Read(u8 add)
{u8 dat;I2CStart(); I2CSendByte(0xa0);I2CWaitAck(); 	I2CSendByte(add);I2CWaitAck(); I2CStart();I2CSendByte(0xa1); I2CWaitAck();dat = I2CReceiveByte(); I2CSendNotAck();I2CStop();return(dat);
}

E2PROM很多时候用来统计设备的开机次数:

 

 


http://www.ppmy.cn/news/39796.html

相关文章

vue elementUI select下拉框设置默认值(赋值)失败

vue elementUI select下拉框设置默认值 要为select下拉框设定默认值&#xff0c;只需要把 v-model 绑定的值和你想要选中 option 的 value 值设置一样即可。 下面上代码&#xff1a; html部分代码&#xff1a; <el-select v-model"valuetype" change"ch…

前端中 try-catch 捕获不到哪些异常和常见错误

在开发过程中&#xff0c;我们的目标是 0error&#xff0c;0warning。 但有很多因素并不是我们可控的&#xff0c;为了避免某块代码的错误&#xff0c;影响到其他模块或者整体代码的运行&#xff0c;我们经常会使用try-catch模块来主动捕获一些异常或者错误。 比如我们在获取…

SpringBoot 使用Prometheus采集自定义指标数据

一、我们需要什么指标 对于DDD、TDD等&#xff0c;大家比较熟悉了&#xff0c;但是对于MDD可能就比较陌生了。MDD是Metrics-Driven Development的缩写&#xff0c;主张开发过程由指标驱动&#xff0c;通过实用指标来驱动快速、精确和细粒度的软件迭代。MDD可使所有可以测量的东…

ChatGPT 与未来软件开发的关系

在过去几年中&#xff0c;自然语言处理 (NLP) 取得了重大进展&#xff0c;并为软件开发开辟了新的可能性。最令人印象深刻的 NLP 应用之一是聊天机器人的开发&#xff0c;它能够通过自然语言与用户交流。ChatGPT 就是这样一种聊天机器人&#xff0c;这是一种由 OpenAI 开发的大…

《扬帆优配》国际原油市场巨震 海外金融稳定性再遭考验

当地时间4月2日&#xff0c;以沙特为代表的“欧佩克”&#xff08;下称OPEC&#xff09;突然宣告&#xff0c;在上一年10月减产200万桶/日的基础上&#xff0c;进一步自愿减产原油超160万桶/日。至此&#xff0c;OPEC计划减产规模将达全球石油产值的约3.5%。 投资者更关怀的是&…

TCP 的可靠传输

目录可靠传输有啥用确认应答超时重传总结可靠传输有啥用 我们知道相比于 UDP, TCP 的传输是可靠的, 啥意思呢? 就是 UDP 发送的数据, 它自己不知道发送的数据对方是否接收到. 而 TCP 发送的数据, 它知道对方是否接收到, 也就是说对方会给个应答. 假设一个场景 : 甲要付款给乙…

Scratch游戏“刀光剑影”游戏介绍

这是一个 Scratch 打怪 闯关 2d 的游戏。 资源下载网址&#xff1a; https://download.csdn.net/download/leyang0910/87651781 士兵简介&#xff1a; 剑兵 &#xff1a;4滴血&#xff0c;可以挥剑杀敌盾兵 &#xff1a;8滴血&#xff0c;盾牌可以防御或者怼人飞刀兵 &…

JAVA-8-[SpringBoot]入门程序案例和原理分析

Spring Boot框架入门教程&#xff08;快速学习版&#xff09; Spring Boot教程BooTWiki.COM 1 Spring Boot Spring Boot是Pivotal(关键性的)团队在Spring的基础上提供的一套全新的开源框架&#xff0c;其目的是为了简化Spring应用的搭建和开发过程。Spring Boot去除了大量的X…