初级会员

- 积分
- 134
- 金钱
- 134
- 注册时间
- 2022-5-19
- 在线时间
- 42 小时
|
5金钱
本帖最后由 warbxnr 于 2022-6-14 15:30 编辑
测试24c64 擦写次数的程序,现在页写,字节读可以。页读就歇逼了。大神棒棒忙啊!!
字节读代码:
u8 AT24CXX_ReadOneByte(u16 ReadAddr)
{
u8 temp=0;
IIC_Start();
IIC_Send_Byte(0XAe); //·¢ËíD′Ãüáî
IIC_Wait_Ack();
IIC_Send_Byte(ReadAddr>>8);
//·¢Ëí¸ßμØÖ·
//·¢ËíÆ÷¼tμØÖ·0XA0,D′êy¾Y
IIC_Wait_Ack();
IIC_Send_Byte(ReadAddr%256); //·¢ËíμíμØÖ·
IIC_Wait_Ack();
IIC_Start();
IIC_Send_Byte(0XAF); //½øèë½óêÕÄ£ê½
IIC_Wait_Ack();
temp=IIC_Read_Byte(0);
IIC_Stop();//2úéúò»¸öí£Ö1ìõ¼t
return temp;
}
-------------------------------------------------------------------------
页读代码
unsigned char Read_opration1(u16 start_addr,unsigned char nb_of_byte,unsigned char *destination,unsigned char device_addr)
{
unsigned int i;
ptr1 = destination; //»o′æ
IIC_Start();
IIC_Send_Byte(0XAe); //·¢ËíD′Ãüáî
IIC_Wait_Ack();
IIC_Send_Byte(start_addr>>8);
//·¢Ëí¸ßμØÖ·
//·¢ËíÆ÷¼tμØÖ·0XA0,D′êy¾Y
IIC_Wait_Ack();
IIC_Send_Byte(start_addr%256); //·¢ËíμíμØÖ·
IIC_Wait_Ack();
IIC_Start();
IIC_Send_Byte(0XAF); //½øèë½óêÕÄ£ê½
IIC_Wait_Ack();
for(i=0;i<nb_of_byte-1;i++)
{
*ptr1++=IIC_Read_Byte(1);
}
*ptr1 = IIC_Read_Byte(0);
IIC_Stop();//2úéúò»¸öí£Ö1ìõ¼t
}
============================================================================
读写验证代码
Chip_write_guding_data(addr_eeprom,nb_of_byte,source1,device_addr); //页写
Read_opration(addr_eeprom,nb_of_byte,sram,device_addr);//页读 实现不了
for(i=0;i<nb_of_byte;i++)
{
//temp=AT24CXX_ReadOneByte(i); //字节读可以实现
Address_EEprom++;
if(sram == 0xa8)
{
LCD_ShowString(30, 250,200,16,16,"Write ok");
LCD_ShowxNum(120, 250, Address_EEprom, 4, 24, 0);
// error_status = 1;
// break;
}
|
|