I2C筆記

I2C總線中文講解,詳盡通俗(一些概念):
http://wenku.baidu.com/link?url=n8aVmARYADcKwBAX5-3b9aml3nwPZh7k9R4FzREmGS8isp9UHCsQ47GiS4nZyerr4SwZLA9-4WGqWmuSEbDcx7yplDc39lGO5-8qBI9iPxq

i2c 相關知識總結(轉):
http://blog.csdn.net/hygzxf/article/details/17416725

I2C通訊的C語言程序:
http://blog.sina.com.cn/s/blog_6a4482d10100yp6j.html

非常實用的模擬I2C程序:
http://wenku.baidu.com/link?url=7O6pbrlv7IcZxIhhml7VNJW1VysuQ4_k-U9qyjYjW8Cv3xSolKJ2oqAzgGv6jFU8-g2AgOmu-2KWfR-k0VNHHZP-N_ByWFw_XdD7G51A9Mu

i2c 編程接口:
http://blog.csdn.net/g_salamander/article/details/8064627

//正點原子例子:

這裏寫圖片描述

//在AT24CXX指定地址寫入一個數據
//WriteAddr  :寫入數據的目的地址    
//DataToWrite:要寫入的數據
void AT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite)
{                                                                                            
  IIC_Start();  
  if(EE_TYPE>AT24C16)  //判斷容量,不同容量寫法不同
    {
        IIC_Send_Byte(0XA0);        //發送寫命令
        IIC_Wait_Ack();
        IIC_Send_Byte(WriteAddr>>8);//發送高地址
    }
    else
    {
        IIC_Send_Byte(0XA0+((WriteAddr/256)<<1));   //正點原子中:發送器件地址0XA0
    }   
 IIC_Wait_Ack();  //等待應答信號

 IIC_Send_Byte(WriteAddr%256);   //發送低地址
 IIC_Wait_Ack();  //等待應答信號

 IIC_Send_Byte(DataToWrite);     //發送字節 
 IIC_Wait_Ack();  //等待應答信號      

 IIC_Stop();//產生一個停止條件 
 delay_ms(10);   
}

這裏寫代碼片


//在AT24CXX指定地址讀出一個數據
//ReadAddr:開始讀數的地址  
//返回值  :讀到的數據
u8 AT24CXX_ReadOneByte(u16 ReadAddr)
{                 
    u8 temp=0;                                                                               
  IIC_Start();  
    if(EE_TYPE>AT24C16)   //芯片爲大容量的時候
    {
        IIC_Send_Byte(0XA0);       //發送寫命令
        IIC_Wait_Ack();
        IIC_Send_Byte(ReadAddr>>8);//發送高地址
        IIC_Wait_Ack();      
    }else IIC_Send_Byte(0XA0+((ReadAddr/256)<<1));   //發送器件地址0XA0,寫數據    

    IIC_Wait_Ack();  //等待應答
    IIC_Send_Byte(ReadAddr%256);   //發送低地址
    IIC_Wait_Ack();   

    IIC_Start();           
    IIC_Send_Byte(0XA1);           //進入接收模式            
    IIC_Wait_Ack();  
    temp=IIC_Read_Byte(0);         
    IIC_Stop();//產生一個停止條件       
    return temp;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章