久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5800|回復(fù): 0
收起左側(cè)

MMA7660FC--重力加速度傳感器驅(qū)動(dòng)

[復(fù)制鏈接]
ID:75926 發(fā)表于 2015-4-10 16:55 | 顯示全部樓層 |閱讀模式
static void I2C_Delay(void)
{
  volatile uint16_t t=0xff;
  while(t--);
}

static void I2C_Start(void)
{
  I2C_SDA_HIGH();
  I2C_SCL_HIGH();
  I2C_Delay();
  I2C_SDA_LOW();
  I2C_Delay();
  I2C_SCL_LOW();
  I2C_Delay();
}

static void I2C_Stop(void)
{
  I2C_SDA_LOW();
  I2C_SCL_HIGH();
  I2C_Delay();
  I2C_SDA_HIGH();
  I2C_Delay();
}

static uint8_t I2C_WaitAck(void)
{
  uint8_t Ack;
  I2C_SDA_HIGH();
  I2C_SCL_HIGH();
  I2C_Delay();
  if(I2C_SDA_Read())
    Ack=1;
  else
    Ack=0;
  I2C_SCL_LOW();
  I2C_Delay();
  return Ack;
}
/*
static void I2C_SendAck(void)
{
  I2C_SDA_LOW();
  I2C_Delay();
  I2C_SCL_HIGH();
  I2C_Delay();
  I2C_SCL_LOW();
  I2C_Delay();
}*/

static void I2C_SendNoAck(void)
{
  I2C_SDA_HIGH();
  I2C_Delay();
  I2C_SCL_HIGH();
  I2C_Delay();
  I2C_SCL_LOW();
  I2C_Delay();
}

static void I2C_SendByte(uint8_t Byte)
{
  uint8_t Bit;
  for(Bit=0;Bit<8;Bit++)
  {
    if(Byte&0x80)
      I2C_SDA_HIGH();
    else
      I2C_SDA_LOW();
    Byte<<=1;
    I2C_Delay();
    I2C_SCL_HIGH();
    I2C_Delay();
    I2C_SCL_LOW();
    I2C_Delay();
  }
}

static uint8_t I2C_ReceiveByte(void)
{
  uint8_t Bit,Byte=0;
  I2C_SDA_HIGH();
  for(Bit=0;Bit<8;Bit++)
  {
    I2C_SCL_HIGH();
    I2C_Delay();
    Byte<<=1;
    if(I2C_SDA_Read())
      Byte++;
    I2C_SCL_LOW();
    I2C_Delay();
  }
  return Byte;
}


/******************************MMA7660FC******************/

uint8_t MMA7660_WriteByte(uint8_t Reg,uint8_t Data)//Reg  MMA7660的寄存器地址  Data 寫進(jìn)寄存器的值
{
  I2C_Start();
  I2C_SendByte(MMA7660_Write);
  if(I2C_WaitAck())
    return 1;
  I2C_SendByte(Reg);
  if(I2C_WaitAck())
    return 2;
  I2C_SendByte(Data);
  if(I2C_WaitAck())
    return 3;
  I2C_Stop();
  return 0;
}

uint8_t MMA7660_ReadByte(uint8_t Reg,uint8_t *pData)
{
  I2C_Start();
  I2C_SendByte(MMA7660_Write);//MMA7660 的I2C寫地址
  if(I2C_WaitAck())
    return 1;
  I2C_SendByte(Reg);
  if(I2C_WaitAck())
    return 2;
  I2C_Start();
  I2C_SendByte(MMA7660_Read);//MMA7660的I2C讀地址
  if(I2C_WaitAck())
    return 3;
  *pData=I2C_ReceiveByte();
  I2C_SendNoAck();
  I2C_Stop();
  return 0;
}

void MMA7660_Check(void)
{
  I2C_Start();
  I2C_SendByte(MMA7660_Write);
  if(I2C_WaitAck())
  {
    put_str("mei you hui ying \n");
  }
  else
  {
    put_str("you hui ying \n");
  }
  I2C_Stop();
}

void Sys_Init(void)
{
  CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
  MMA7660_Init();
  USART_Configuration();
}

uint8_t MMA7660_Configuration(void)
{
  if(MMA7660_WriteByte(0x05,0xff))
    return 1;
  if(MMA7660_WriteByte(0x06,0x03))
    return 2;
  if(MMA7660_WriteByte(0x08,0x3c))
    return 3;
  if(MMA7660_WriteByte(0x09,0xe0))
    return 4;
  if(MMA7660_WriteByte(0x0a,0x00))
    return 5;
  if(MMA7660_WriteByte(0x07,0x59))
    return 6;
  return 0;
}

//想要獲取當(dāng)前的狀態(tài) 只需要調(diào)用  
MMA7660_ReadByte()  讀取0x03 地址的數(shù)據(jù)  讀出來的數(shù)據(jù)中  [4:2]的數(shù)據(jù)才是有用數(shù)據(jù)  001  010  101  110 分別代表的是   左 右 下 上  .




回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 97久久精品午夜一区二区 | 免费视频一区 | 一区二区在线观看免费视频 | 手机av在线 | 天堂色网 | 两性午夜视频 | 91精品国产综合久久婷婷香蕉 | 逼逼视频 | 欧美国产视频一区二区 | 日韩精品视频在线 | 色www精品视频在线观看 | 国产精品96久久久久久 | 国产玖玖| 综合久久久 | av一区二区三区四区 | 免费国产一区二区 | 亚洲久久一区 | 午夜成人在线视频 | 久久久久久亚洲欧洲 | 国产精品日日做人人爱 | 9久久精品| 99re66在线观看精品热 | 国产伦精品一区二区三毛 | 美女黄网 | 免费观看成人鲁鲁鲁鲁鲁视频 | 日韩精品一区二区三区在线播放 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 91麻豆精品国产91久久久更新资源速度超快 | 国产综合久久 | 欧美一区二区免费 | 亚洲欧洲精品在线 | 欧美性极品xxxx做受 | 久久久久久久久久久高潮一区二区 | 日韩精品一区二区三区视频播放 | 久久久久久一区 | 成年视频在线观看福利资源 | 成人在线视频一区 | 男女污网站 | 精品国产18久久久久久二百 | 欧美一区二区三区在线观看 | 欧美亚洲国产一区二区三区 |