注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

zpehome的博客

Hope is a good thing,the best of things

 
 
 

日志

 
 

模拟I2C  

2012-11-09 12:10:12|  分类: 嵌入式软件 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

#define I2C_SLAVE_ADDRESS7 0xA6

#define I2C_SCL_0 GPIO_ResetBits(GPIOB,GPIO_Pin_10)

#define I2C_SCL_1 GPIO_SetBits(GPIOB,GPIO_Pin_10)

#define I2C_SDA_0 GPIO_ResetBits(GPIOB,GPIO_Pin_11)

#define I2C_SDA_1 GPIO_ResetBits(GPIOB,GPIO_Pin_11)

#define I2C_SDA_STAT GPIO_ReadInputDataBit(GPIO,GPIO_Pin_11)

#define I2C_ACK 0

#define I2C_NACK 1

#define I2C_READY 0

#define I2C_BUSY 1

 #define I2C_ERROR 3

void I2C_NOP(void)

{

  uint8_t i = 5;

  while(i--);

}

uint8_t I2C_Start(void)

{

  I2C_SDA_1;

  NOP();

  I2C_SCL_1;

  NOP();

  if(!I2C_SDA_STAT)

  {

    return I2C_BUSY;

  }

  I2C_SDA_0;

  NOP();

  I2C_SCL_0;

  NOP();

if(I2C_SDA_STAT)

  {

    return I2C_ERROR;

  }

return I2C_READY;

}

void I2C_STOP(void)

{

  I2C_SDA_0;

  NOP();

  I2C_SCL_1;

  NOP();

  I2C_SDA_1;

  NOP();

uint8_t I2C_SendByte(uint8_t data)

{

  uint8_t i,err;

  I2C_SCL_0;

  for(i=0;i<8;i++)

  {

    if(data&0x80)

    {

    I2C_SDA_1;

    }

    else

    {

      I2C_SDA_0;

    }

    data<<=1;

    NOP();

//产生一个上升沿

   I2C_SCL_1;

   NOP();

   I2C_SCL_0;

   NOP();

  }

//接收从机应答

  I2C_SDA_1;

  NOP();

  I2C_SCL_1;

  NOP();

  while(I2C_SDA_STAT)

  {

    err++;

    if(err>250)

    {

      I2C_SCL_0;

      I2C_SDA_1;

      return I2C_NACK;

    }

  }

  I2C_SCL_0;

  I2C_SDA_1;

  return I2C_ACK;

}

void I2C_ReceveByte(void)

{

  uint8_t i,data;

  I2C_SDA_1;

  I2C_SCL_0;

  data=0;

  for(i=0;i<8;i++)

  {

    I2C_SCL_1;

    NOP();

    data<<=1;

    if(I2C_SDA_STAT)

    {

      data|=0x01;

    }

    I2C_SCL_0;

    NOP();

  }

  return data;

}

  评论这张
 
阅读(44)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017