《嵌入式技术及应用(STM32CubeMX版) 代码 写数程序.docx》由会员分享,可在线阅读,更多相关《嵌入式技术及应用(STM32CubeMX版) 代码 写数程序.docx(3页珍藏版)》请在第一文库网上搜索。
1、123456789101112131415161718192021222324252627282930313233343536373839404142写数程序intAT24C02Write(uint16tWriteAddr,uint8t*pBuffer,uint16_t1en)功能:在AT24C02的指定地址开始写入指定个数的数据参数:WriteAddr:所要写入的地址对24c02为0-255pBuffer:数据存放的地址Ien:所要写入的数据个数返回值:HA1_OK:写数成功int-1:写数失败AT24C02Write(uint16tWriteAddr,uint8t*pBuffer,uint
2、16_tIen)uint8_tent;uint8_tfstAdd;uint8_tnum;已写入的字节数当前写入的首地址/当前页的剩余字节数HA1_StatusTypeDefres;写操作的结果/初始化fStAdd=WriteAddr;写入的首地址为用户指定地址cnt=O;已写入0个数据num=ByteOfPage-fstAdd%ByteOfPage;计算页内剩余字节数并赋给numwhi1e(cntIen)if(num1en-cnt)剩余字节数超过了当前页的容量当前页写入num个数据res=HA1_I2C_Mem_Write(&hi2c1,AT24C02_WR_ADDR,fstAdd,I2C_M
3、EMADD_SIZE_8BIT,pBuffer+cnt,num,1000);ifQes=HAJERROR)returnT;写数出错,则返回T后结束HA1_De1ay(10);/写数正确,延时等待内部写结束cnt=cnt+num;更新计数值fstAdd=fstAdd+num;num=ByteOfPage;e1se当前页的容量大于剩余字节数/当前页写入剩余字节数,并结束写res=HA1_I2C_Mem_Write(&hi2c1,AT24C02_WR_ADDR,fstAdd,12CMEMADDSIZE8BIT,pBuffer+cnt,1en-ent,1000);HA1_De1ay(10);延时等待内部写结束break;跳出循环)44if(res=HA1_ERROR)returnT;写数出错,则返回T45returnHA1OK;写数正确,则返回HA1J)K46)