嵌入式技术及应用(STM32CubeMX版) 代码 Task18AT24C02_c.docx

上传人:lao****ou 文档编号:1135930 上传时间:2024-12-02 格式:DOCX 页数:2 大小:17.46KB
下载 相关 举报
嵌入式技术及应用(STM32CubeMX版) 代码 Task18AT24C02_c.docx_第1页
第1页 / 共2页
嵌入式技术及应用(STM32CubeMX版) 代码 Task18AT24C02_c.docx_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《嵌入式技术及应用(STM32CubeMX版) 代码 Task18AT24C02_c.docx》由会员分享,可在线阅读,更多相关《嵌入式技术及应用(STM32CubeMX版) 代码 Task18AT24C02_c.docx(2页珍藏版)》请在第一文库网上搜索。

1、在任务18中,AT24C02.c文件的内容如下:12345678910111213141516171819202122232425262728293031323334353637383940414243/*AT24C02.CAT24C02访问程序功能:用硬件I2C控制AT24C02AT24C02的特性:容量:共2kb即256B,组织:分32页,每页8B,写数要分页写,否则会出现卷边现象设备地址8位,其中主地址7位,最后一位为数据传输方向,设备地址如下:1010A2A1AOR/W10100000=OXAO10100001=OXA1*/inc1ude*i2c.h”inc1udeAT24C02.hd

2、efineAT24C02_WR_ADDROXA0写地址0defineAT24C02_RD_ADDROXA1读地址0defineByteOfPage8每页字节数/*intAT24C02_Read(uint16_tReadAddr,uint8_t*pBuffer,uint16_t1en)功能:从AT24C02指定地址处开始读出指定个数的数据参数:ReadAddr:所要读取的地址对24c02为0255pBuffer:数据存放的地址Ien:所要读出的个数返回值:HA1-OK:读数成功-1:读数失败*/intAT24C02_Read(uint16_tReadAddr,uint8_t*pBuffer,ui

3、nt16_t1en)(HA1-StatusTypeDefres=HA1_ERROR;res=HA1_I2C_Mem_Read(&hi2c1,AT24C02_RD_ADDR,ReadAddr,I2C_MEMADD_SIZE_8BIT,pBuffer,1en,1000);if(res=HA1_ERROR)return-1;returnHA1_OK;intAT24C02JVrite(uint16_tWriteAddr,int8-t*pBuffer,uint16_t1en)功能:在AT24C02的指定地址开始写入指定个数的数据参数:44454647484950515253545556575859606

4、16263646566676869707172737475767778798081828384WriteAddr:所要写入的地址对24c02为0255pBuffer:数据存放的地址Ien:所要写入的数据个数返回值:HA1-OK:写数成功-1:写数失败*/intT24C02JVrite(uint16_tWriteAddr,uint8_t*pBuffer,uint16_t1en)uint8_tent;己写入的字节数uint8_tfstAdd;当前写入的首地址uint8_tnum;当前页的剩余字节数HA1.StatusTypeDefres;写操作的结果初始化fstAdd=WriteAddr;写入的首

5、地址为用户指定地址cnt=0;已写入0个数据num=ByteOfPage-fstAdd%ByteOfPage;/计算页内剩余字节数并赋给numwhi1e(cnt1en)(if(num1en-cnt)剩余字节数超过了当前页的容量当前页写入num个数据res=H1-I2CJ1eJVrite(fehi2c1,AT24C02_WR_ADDR,fstAdd,I2C_MEMADD_SIZE_8BIT,pBuffer+cnt,num,1000);if(res=HA1_ERROR)returnT;写数出错,则返回T后结束HA1_De1ay(10);写数正确,延时等待内部写结束cnt=cnt+num;更新计数值fstAdd=fstAdd+num;Hum=ByteOfPage;)e1se(当前页的容量大于剩余字节数当前页写入剩余字节数,并结束写res=H1-I2CJ1emJVrite(fehi2c1,AT24C02_WR_ADDR,fstAdd,I2C_MEMADD_SIZE_8BIT,pBuffer+cnt,1en-cnt,1000);HA1_De1ay(10);延时等待内部写结束break;跳出循环)if(res=HAjERROR)returnT;写数出错,则返回TreturnHA1_OK;写数正确,则返回HA1oK

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服