完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
只能写入6个字节,7与8字节写不进
uint32_t EEPROM_PageWrite(uint8_t u8Addr, uint8_t *pu8Buf) { int32_t i32Err; int32_t i,k; k=0; do { k++; i32Err = 0; /* Send start */ _I2C_START(I2C0); _I2C_WAIT_READY(I2C0); /* Send control byte */ _I2C_WRITE(I2C0, EEPROM_WRITE_ADDR); _I2C_WAIT_READY(I2C0); if(I2C0->I2CSTATUS == 0x18) { { /* ACK */ /* Send low address */ _I2C_WRITE(I2C0, u8Addr); //address _I2C_WAIT_READY(I2C0); if(I2C0->I2CSTATUS == 0x28) { /* ACK */ for(i=0;i<8;i++) { /* Send data */ if(I2C0->I2CSTATUS == 0x28) { _I2C_WRITE(I2C0, pu8Buf[i]); // data _I2C_WAIT_READY(I2C0); if(I2C0->I2CSTATUS == 0x30) { /* NACK */ /* Send data error */ i32Err = 3; } } else i32Err = 1; } if(I2C0->I2CSTATUS == 0x28) { /* ACK */ /* Send stop */ _I2C_STOP(I2C0); } else { /* NACK */ /* Send data error */ i32Err = 4; } } else { /* NACK */ /* Send low address error */ i32Err = 2; } } } else { /* NACK */ /* Send control error */ i32Err = 1; } if(i32Err) { /* Send stop */ _I2C_STOP(I2C0); } Delay(200); }while(i32Err (k<4)); return(i32Err); } |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
606浏览 3评论
466浏览 2评论
346浏览 1评论
357浏览 1评论
331浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-1 14:03 , Processed in 0.832824 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号