• 大小: 8.91MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-22
  • 语言: 其他
  • 标签:

资源简介

AT24c02驱动编写,stm32IO口模拟模拟IIC时序,实现写入数据与读出数据功能

资源截图

代码片段和文件信息

#include “AT24CXX.h“

/*******************************************************************************
* 函 数 名         : AT24Cxx_ReadOneByte
* 函数功能    : 24c02读一个字节地址  数据    
* 输    入         : addr
* 输    出         : 返回值temp
*******************************************************************************/
u8 AT24Cxx_ReadOneByte(u16 addr)
{
u8 temp=0;

I2C_Start();

if(EE_TYPE>AT24C16)
{
I2C_Send_Byte(0xA0);
I2C_Wait_Ack();
I2C_Send_Byte(addr>>8); //发送数据地址高位
}
else
{
   I2C_Send_Byte(0xA0+((addr/256)<<1));//器件地址+数据地址
}

I2C_Wait_Ack();
I2C_Send_Byte(addr%256);//双字节是数据地址低位
//单字节是数据地址低位
I2C_Wait_Ack();

I2C_Start();
I2C_Send_Byte(0xA1);
I2C_Wait_Ack();

temp=I2C_Read_Byte(0); //  0   代表 NACK
I2C_NAck();
I2C_Stop();

return temp;
}


/*******************************************************************************
* 函 数 名         : AT24Cxx_ReadTwoByte
* 函数功能    : 24c02读2个字节地址 数据  
* 输    入         : addr
* 输    出         : 返回值temp
*******************************************************************************/
u16 AT24Cxx_ReadTwoByte(u16 addr)
{
u16 temp=0;

I2C_Start();

if(EE_TYPE>AT24C16)
{
I2C_Send_Byte(0xA0);
I2C_Wait_Ack();
I2C_Send_Byte(addr>>8); //发送数据地址高位
}
else
{
   I2C_Send_Byte(0xA0+((addr/256)<<1));//器件地址+数据地址
}

I2C_Wait_Ack();
I2C_Send_Byte(addr%256);//双字节是数据地址低位
//单字节是数据地址低位
I2C_Wait_Ack();

I2C_Start();
I2C_Send_Byte(0xA1);
I2C_Wait_Ack();

temp=I2C_Read_Byte(1); //  1   代表 ACK
temp<<=8;
temp|=I2C_Read_Byte(0); //  0  代表 NACK

I2C_Stop();

return temp;
}

/*******************************************************************************
* 函 数 名         : AT24Cxx_WriteOneByte
* 函数功能    : 24c02写一个字节地址  数据    
* 输    入         : addr  dt
* 输    出         : 无
*******************************************************************************/
void AT24Cxx_WriteOneByte(u16 addru8 dt)
{
I2C_Start();

if(EE_TYPE>AT24C16)
{
I2C_Send_Byte(0xA0);
I2C_Wait_Ack();
I2C_Send_Byte(addr>>8); //发送数据地址高位
}
else
{
   I2C_Send_Byte(0xA0+((addr/256)<<1));//器件地址+数据地址
}

I2C_Wait_Ack();
I2C_Send_Byte(addr%256);//双字节是数据地址低位
//单字节是数据地址低位
I2C_Wait_Ack();

I2C_Send_Byte(dt);
I2C_Wait_Ack();
I2C_Stop();

delay_ms(10);
}

/*******************************************************************************
* 函 数 名         : AT24Cxx_WriteTwoByte
* 函数功能    : 24c02写2个字节地址  数据    
* 输    入         : addr  dt
* 输    出         : 无
*******************************************************************************/
void AT24Cxx_WriteTwoByte(u16 addru16 dt)
{
I2C_Start();

if(EE_TYPE>AT24C16)
{
I2C_Send_Byte(0xA0);
I2C_Wait_Ack();
I2C_Send_Byte(addr>>8); //发送数据地址高位
}
else
{
   I2C_Send_Byte(0xA0+((addr/256)<<1));//器件地址+数据地址
}

I2C_Wait_Ack();
I2C_Send_Byte(addr%256);//双字节是数据地址低位
//单字节是数据地址低位
I2C_Wait_Ack();

I2C

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-03-03 07:59  实验13:IIC(24C02)\
     文件     2584493  2016-05-10 15:19  实验13:IIC(24C02)\24c02中文官方手册.pdf
     文件     1448146  2016-05-10 15:19  实验13:IIC(24C02)\i2c总线协议(中文版pdf).pdf
     文件      167165  2016-05-10 15:18  实验13:IIC(24C02)\串口助手显示.jpg
     文件      557577  2016-05-10 15:19  实验13:IIC(24C02)\实验13:IIC(24C02).pdf
     文件         595  2016-05-10 15:18  实验13:IIC(24C02)\实验说明.txt
     目录           0  2017-03-03 07:59  实验13:IIC(24C02)\工程模板\
     文件       59715  2016-05-10 15:37  实验13:IIC(24C02)\工程模板\1.uvopt
     文件         654  2016-05-10 15:37  实验13:IIC(24C02)\工程模板\1_Target 1.dep
     目录           0  2017-03-03 07:59  实验13:IIC(24C02)\工程模板\APP\
     目录           0  2017-03-03 07:59  实验13:IIC(24C02)\工程模板\APP\AT24Cxx\
     文件        3357  2016-05-10 19:22  实验13:IIC(24C02)\工程模板\APP\AT24Cxx\AT24CXX.c
     文件         510  2016-05-10 19:22  实验13:IIC(24C02)\工程模板\APP\AT24Cxx\AT24CXX.h
     目录           0  2017-03-03 07:59  实验13:IIC(24C02)\工程模板\APP\beep\
     文件        1879  2016-05-10 19:22  实验13:IIC(24C02)\工程模板\APP\beep\beep.c
     文件         194  2016-05-10 19:22  实验13:IIC(24C02)\工程模板\APP\beep\beep.h
     目录           0  2017-03-03 07:59  实验13:IIC(24C02)\工程模板\APP\exit\
     文件        1581  2016-05-10 19:22  实验13:IIC(24C02)\工程模板\APP\exit\exti.c
     文件         151  2016-05-10 19:22  实验13:IIC(24C02)\工程模板\APP\exit\exti.h
     目录           0  2017-03-03 07:59  实验13:IIC(24C02)\工程模板\APP\IIC(24C02)\
     文件        3329  2016-05-10 19:22  实验13:IIC(24C02)\工程模板\APP\IIC(24C02)\iic.c
     文件         725  2016-05-10 19:22  实验13:IIC(24C02)\工程模板\APP\IIC(24C02)\iic.h
     目录           0  2017-03-03 07:59  实验13:IIC(24C02)\工程模板\APP\key\
     文件        1095  2016-05-10 19:22  实验13:IIC(24C02)\工程模板\APP\key\key.c
     文件         451  2016-05-10 19:22  实验13:IIC(24C02)\工程模板\APP\key\key.h
     目录           0  2017-03-03 07:59  实验13:IIC(24C02)\工程模板\APP\LED\
     文件        2342  2016-05-10 19:22  实验13:IIC(24C02)\工程模板\APP\LED\led.c
     文件         182  2016-05-10 19:22  实验13:IIC(24C02)\工程模板\APP\LED\led.h
     目录           0  2017-03-03 07:59  实验13:IIC(24C02)\工程模板\APP\printf\
     文件        2082  2016-05-10 19:22  实验13:IIC(24C02)\工程模板\APP\printf\printf.c
     文件         147  2016-05-10 19:22  实验13:IIC(24C02)\工程模板\APP\printf\printf.h
............此处省略241个文件信息

评论

共有 条评论

相关资源