AT24C02读写操作 一
//AT24C02初始化
void AT24C02_Init(void)
{
IIC_Init();
}
//AT24C02的字节写入 写一个字节
void AT24C02_WordWrite(uint8_Address,uint8_t Data)
{
//1。主机发送开始信号
IIC_StartSignal();
//2.主机发送器件地址 写操作
IIC_SentBytes(0xA0);
//3.主机等侍从机应答
if(IIC_WaitAck()==1) //如果没有应答
{
printf("AT24C02 Ack Device Address Error\n");
IIC_StopSignal();
}
printf(" AT24C02 Ack Device Address OK\N");
//4.主机发送存储地址 写操作
IIC_SendBytes(Address);
if(IIC_WaitAck()==1) //如果没有应答
{
printf("AT24C02 Ack Data Address Error\n");
IIC_StopSignal();
}
printf(" AT24C02 Ack Data Address OK\N");
//5主机发送存储数据 写操作
IIC_SendBytes(Data);
if(IIC_WaitAck()==1) //如果没有应答
{
printf("AT24C02 Ack Write Data Error\n");
IIC_StopSignal();
}
printf(" AT24C02 Ack Write Date OK\N");
//6主机发送停止信号
IIC_StopSignal();
}
//AT24C02读取一个字节 随机读
uint8_t AT24C02_WordRead(uint8_t Address )
{
uint8_t data=0;
//1。主机发送开始信号
IIC_StartSignal();
//2.主机发送器件地址 写操作
IIC_SentBytes(0xA0);
//3.主机等侍从机应答
if(IIC_WaitAck()==1) //如果没有应答
{
printf("AT24C02 Ack Device Write Address Error\n");
IIC_StopSignal();
}
printf(" AT24C02 Ack Device Write Address OK\N");
//4.主机发送存储地址 打算读取数据的地址
IIC_SendBytes(Address);
//5主机等待应答
if(IIC_WaitAck()==1) //如果没有应答
{
printf("AT24C02 Ack Data Device Address Error\n");
IIC_StopSignal();
}
printf(" AT24C02 Ack Data Device Address OK\N");
//6.主机再次发送开始信号
IIC_StartSignal();
//7.主机发送器件地址 读操作
IIC_SentBytes(0xA1);
//8主机等待应答
if(IIC_WaitAck()==0) //如果没有应答
{
printf("AT24C02 Ack Device Read Address Error\n");
IIC_StopSignal();
}
printf(" AT24C02 Ack Device Read Address OK\N");
//9主机读取1个字节数据
data=IIC_ReadBytes( ); 当前读
//10主机发送应答信号
IIC_MasterAck(1);
//11主机发送停止信号
IIC_StopSignal();
return data
}
//读取n字节数据
void AT24C02_RandomRead(uint8_t Address uint8_t *RecvBuf uint8_t Dataleng)
{
//1。主机发送开始信号
IIC_StartSignal();
//2.主机发送器件地址 写操作
IIC_SentBytes(0xA0);
//3.主机等侍从机应答
if(IIC_WaitAck()==1) //如果没有应答
{
printf("AT24C02 Ack Device Write Address Error\n");
IIC_StopSignal();
}
printf(" AT24C02 Ack Device Write Address OK\N");
//4.主机发送存储地址 打算读取数据的地址
IIC_SendBytes(Address);
//5主机等待应答
if(IIC_WaitAck()==1) //如果没有应答
{
printf("AT24C02 Ack Data Device Address Error\n");
IIC_StopSignal();
}
printf(" AT24C02 Ack Data Device Address OK\N");
//6.主机再次发送开始信号
IIC_StartSignal();
//7.主机发送器件地址 读操作
IIC_SentBytes(0xA1);
//8主机等待应答
if(IIC_WaitAck()==0) //如果没有应答
{
printf("AT24C02 Ack Device Read Address Error\n");
IIC_StopSignal();
}
printf(" AT24C02 Ack Device Read Address OK\N");
//9主机读取1个字节数据
Datalen=Datalen-1;
while(Datalen--)
{
*IRecvBuf++=IIC_ReadBytes( );
IIC_MasterAck(0); //表示主机收到
}
*IRecvBuf=IIC_ReadBytes( ); //读最后一个字节
//10主机发送应答信号
IIC_MasterAck(1);
//11主机发送停止信号
IIC_StopSignal();
return data
}
//uint8_t AT24C02_CurrentAddressRead(void) 当前读 保存当前下一个地址
{
uint8_t data=0;
//1。主机发送开始信号
IIC_StartSignal();
//2.主机发送器件地址 读操作
IIC_SentBytes(0xA1);
//3.主机等侍从机应答
if(IIC_WaitAck()==1) //如果没有应答
{
printf("AT24C02 Ack Device Address Error\n");
IIC_StopSignal();
}
printf(" AT24C02 Ack Device Address OK\N");
//4.主机读取1个字节数据
data=IIC_ReadBytes(); 当前读 读当前下一个地址
//5主机发送应答信号
IIC_MasterAck(1);
//6主机发送停止信号
IIC_StopSignal();
}
相关文章:
AT24C02读写操作 一
//AT24C02初始化 void AT24C02_Init(void) { IIC_Init(); } //AT24C02的字节写入 写一个字节 void AT24C02_WordWrite(uint8_Address,uint8_t Data) { //1。主机发送开始信号 IIC_StartSignal(); //2.主机发送器件地址 写操作 IIC_SentBytes(0xA0); //3.主机等侍从机应…...
.NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
在这篇文章中,我们将了解 .NET 8 中为托管服务引入的一些新生命周期事件。请注意,这篇文章与 .NET 8 相关,在撰写本文时,.NET 8 目前处于预览状态。在 11 月 .NET 8 最终版本发布之前,类型和实现可能会发生变化。要继续…...
Redis--Geo指令的语法和使用场景举例(附近的人功能)
文章目录 前言Geo介绍Geo指令使用使用场景:附近的人参考文献 前言 Redis除了常见的五种数据类型之外,其实还有一些少见的数据结构,如Geo,HyperLogLog等。虽然它们少见,但是作用却不容小觑。本文将介绍Geo指令的语法和…...
127.0.0.1和0.0.0.0的区别
在网络开发中,经常会涉及到两个特殊的IP地址:127.0.0.1和0.0.0.0。这两者之间有一些关键的区别,本文将深入介绍它们的作用和用途。 127.0.0.1 127.0.0.1 是本地回环地址,通常称为 “localhost”。作用是让网络应用程序能够与本地…...
SpringBoot ES 聚合后多字段加减乘除
SpringBoot ES 聚合后多字段加减乘除 在SpringData Elasticsearch中,聚合统计的原理主要依赖于Elasticsearch本身的聚合框架。Elasticsearch提供了强大的聚合功能,使得你可以对文档进行各种计算和统计,从而得到有关数据集的有用信息。 Elast…...
React16源码: React中requestCurrentTime和expirationTime的源码实现补充
requestCurrentTime 1 )概述 关于 currentTime,在计算 expirationTime 和其他的一些地方都会用到 从它的名义上来讲,应等于performance.now() 或者 Date.now() 就是指定的当前时间在react整体设计当中,它是有一些特定的用处和一些…...
【论文阅读】Deep Graph Contrastive Representation Learning
目录 0、基本信息1、研究动机2、创新点3、方法论3.1、整体框架及算法流程3.2、Corruption函数的具体实现3.2.1、删除边(RE)3.2.2、特征掩盖(MF) 3.3、[编码器](https://blog.csdn.net/qq_44426403/article/details/135443921)的设…...
设计模式-简单工厂
设计模式-简单工厂 简单工厂模式是一个集中管理对象创建,并根据条件生成所需类型对象的设计模式,有助于提高代码的复用性和维护性,但可能会导致工厂类过于复杂且违反开闭原则。 抽象提取理论: 封装对象创建过程解耦客户端与产品…...
Django ORM 中的单表查询 API(1)
在 Django 中,对象关系映射(ORM)提供了一种功能强大、表现力丰富的数据库交互方式。ORM 允许开发人员使用高级 Python 代码执行数据库查询,从而更轻松地处理数据库实体。 下面,我们将探讨 Django ORM 中单表查询 API …...
电子雨html代码
废话不多说下面是代码: <!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><title>Code</title><style>body{margin: 0;overflow: hidden;}</style></head><body><c…...
xadmin基于Django的后台管理系统安装与使用
xadmin是基于Django的后台管理系统 官网:http://sshwsfc.github.io/xadmin/ github地址:https://github.com/sshwsfc/xadmin 安装方式 pip安装 pip install xadmin在setting配置中添加: INSTALLED_APPS [xadmin,crispy_forms, ]在urls.py…...
[go语言]输入输出
目录 知识结构 输入 1.Scan 编辑 2.Scanf 3.Scanln 4.os.Stdin --标准输入,从键盘输入 输出 1.Print 2.Printf 3.Println 知识结构 输入 为了展示集中输入的区别,将直接进行代码演示。 三者区别的结论:Scanf格式化输入&#x…...
【SpringBoot系列】AOP详解
🤵♂️ 个人主页:@香菜的个人主页,加 ischongxin ,备注csdn ✍🏻作者简介:csdn 认证博客专家,游戏开发领域优质创作者,华为云享专家,2021年度华为云年度十佳博主 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收…...
openssl3.2 - 官方demo学习 - signature - rsa_pss_hash.c
文章目录 openssl3.2 - 官方demo学习 - signature - rsa_pss_hash.c概述笔记END openssl3.2 - 官方demo学习 - signature - rsa_pss_hash.c 概述 对私钥对明文做签名(摘要算法为SHA256) 用公钥对密文做验签(摘要算法为SHA256) 笔记 /*! \file rsa_pss_hash.c \note openss…...
Redis相关知识点
1.什么是Redis Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库,它支持网络,可基于内存亦可持久化,并提供多种语言的API。Redis具有高效性、原子性、支持多种数据结构、…...
嵌入式开发--STM32G4系列片上FLASH的读写
这个玩意吧,说起来很简单,就是几行代码的事,但楞是折腾了我大半天时间才搞定。原因后面说,先看代码吧: 读操作 读操作很简单,以32位方式读取的时候是这样的: data *(__IO uint32_t *)(0x080…...
嵌入式-Stm32-江科大基于标准库的GPIO的八种模式
文章目录 一:GPIO输入输出原理二:GPIO基本结构三:GPIO位结构四:GPIO的八种模式道友:相信别人,更要一百倍地相信自己。 (推荐先看文章:《 嵌入式-32单片机-GPIO推挽输出和开漏输出》…...
2024年1月17日Arxiv热门NLP大模型论文:THE FAISS LIBRARY
Meta革新搜索技术!提出Faiss库引领向量数据库性能飞跃 引言:向量数据库的兴起与发展 随着人工智能应用的迅速增长,需要存储和索引的嵌入向量(embeddings)数量也在急剧增加。嵌入向量是由神经网络生成的向量表示&…...
深度解析JVM类加载器与双亲委派模型
概述 Java虚拟机(JVM)是Java程序运行的核心,其中类加载器和双亲委派模型是JVM的重要组成部分。本文将深入讨论这两个概念,并解释它们在实际开发中的应用。 1. 什么是类加载器? 类加载器是JVM的一部分,负…...
前端下载文件流,设置返回值类型responseType:‘blob‘无效的问题
前言: 本是一个非常简单的请求,即是下载文件。通常的做法如下: 1.前端通过Vue Axios向后端请求,同时在请求中设置响应体为Blob格式。 2.后端相应前端的请求,同时返回Blob格式的文件给到前端(如果没有步骤…...
virtua在复杂场景中的应用:表格、聊天、日历等10种真实案例解析
virtua在复杂场景中的应用:表格、聊天、日历等10种真实案例解析 【免费下载链接】virtua A zero-config, fast and small (~3kB) virtual list (and grid) component for React. 项目地址: https://gitcode.com/gh_mirrors/vi/virtua virtua是一款零配置、轻…...
MedGemma X-Ray开源大模型部署:医疗AI合规性与本地化实践
MedGemma X-Ray开源大模型部署:医疗AI合规性与本地化实践 1. 引言:当AI遇见医疗影像 想象一下,一位年轻的住院医师面对一张复杂的胸部X光片,需要快速判断是否存在肺炎、气胸或骨折的迹象。传统的阅片过程依赖经验积累࿰…...
从WechatRealFriends迁移至WeFriends:解决微信好友管理痛点的完整指南
从WechatRealFriends迁移至WeFriends:解决微信好友管理痛点的完整指南 【免费下载链接】WechatRealFriends 微信好友关系一键检测,基于微信ipad协议,看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/Wechat…...
影墨·今颜模型在网络安全教学中的应用:生成网络拓扑与攻击场景示意图
影墨今颜模型在网络安全教学中的应用:生成网络拓扑与攻击场景示意图 网络安全教学一直有个难题:很多概念太抽象了。你跟学生讲“中间人攻击”,讲“DDoS流量”,或者讲“防火墙策略”,他们脑子里可能只有一堆文字&#…...
能耗监控系统:OpenClaw+GLM-4-7-Flash分析家庭用电报告
能耗监控系统:OpenClawGLM-4-7-Flash分析家庭用电报告 1. 为什么需要本地化的能耗监控系统 去年夏天,我家电费账单突然比平时高出40%。当我尝试用市面上的智能电表分析工具时,发现需要将用电数据上传到第三方平台才能生成报告——这意味着我…...
4个免费开源工具帮你省下OpenAI Deep Research的200美元月费(附详细配置指南)
4款开源工具实现专业级AI研究:零成本替代OpenAI Deep Research全攻略 当OpenAI推出Deep Research功能时,许多研究者和开发者的眼睛都亮了——自动完成复杂研究任务、整合海量信息并生成专业报告的能力,正是知识工作者的梦想工具。但每月200美…...
Xftp访问服务器文件夹报错?可能是你Xshell打开的方式不对(附正确操作截图)
Xftp访问服务器文件夹报错?可能是你Xshell打开的方式不对(附正确操作截图) 当你使用Xftp连接服务器时,突然遇到"无法显示远程文件夹"的报错,这往往不是Xftp本身的问题,而是权限和会话上下文在作…...
跨平台远程共享USB设备:USB Network Gate实战指南
1. 为什么需要远程共享USB设备? 想象一下这样的场景:你在家办公,突然需要打印一份紧急文件,但打印机连接在办公室的电脑上;或者团队协作时,十几个人轮流使用同一台高精度扫描仪,每次都要拔插USB…...
罗技鼠标宏:专业级压枪系统构建指南
罗技鼠标宏:专业级压枪系统构建指南 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 在竞技射击游戏中,精准控制武器后坐力…...
amsmath宏包完全使用手册:从解决符号显示问题到专业公式排版
amsmath宏包完全使用手册:从解决符号显示问题到专业公式排版 在科研论文、技术文档或数学教材的写作过程中,LaTeX作为专业的排版工具已经成为学术界的标准选择。而数学公式的排版,则是LaTeX最引以为傲的功能之一。然而,即使是经验…...
