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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1577|回復: 0
收起左側

GD60933數字紅外溫度儀程序

[復制鏈接]
ID:830387 發表于 2024-8-29 08:54 | 顯示全部樓層 |閱讀模式
GD60933數字紅外溫度儀使用說明,這是谷德科技出品的器件以下是驅動代碼,供參考。

#define speedcommu                        300

uint16_t m,Command[4],tempReadv[4] ;

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void I2cA_start()
{
    for(m=0;m<speedcommu;m++)HAL_GPIO_WritePin(A_SDA_GPIO_Port,A_SDA_Pin,GPIO_PIN_SET);
    for(m=0;m<speedcommu;m++)HAL_GPIO_WritePin(A_SCL_GPIO_Port,A_SCL_Pin,GPIO_PIN_SET);
    for(m=0;m<speedcommu;m++)HAL_GPIO_WritePin(A_SDA_GPIO_Port,A_SDA_Pin,GPIO_PIN_RESET);
    for(m=0;m<speedcommu;m++)HAL_GPIO_WritePin(A_SCL_GPIO_Port,A_SCL_Pin,GPIO_PIN_RESET);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void I2cA_stop()
{
    for(m=0;m<speedcommu;m++)HAL_GPIO_WritePin(A_SDA_GPIO_Port,A_SDA_Pin,GPIO_PIN_RESET);
    for(m=0;m<speedcommu;m++)HAL_GPIO_WritePin(A_SCL_GPIO_Port,A_SCL_Pin,GPIO_PIN_SET);   
    for(m=0;m<speedcommu;m++)HAL_GPIO_WritePin(A_SDA_GPIO_Port,A_SDA_Pin,GPIO_PIN_SET);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void I2cA_sendAck(uint8_t ack)
{
    if(ack==0)
    {
        for(m=0;m<speedcommu;m++)HAL_GPIO_WritePin(A_SDA_GPIO_Port,A_SDA_Pin,GPIO_PIN_RESET);
    }
    else
    {
        for(m=0;m<speedcommu;m++)HAL_GPIO_WritePin(A_SDA_GPIO_Port,A_SDA_Pin,GPIO_PIN_SET);
    }
    for(m=0;m<speedcommu;m++)HAL_GPIO_WritePin(A_SCL_GPIO_Port,A_SCL_Pin,GPIO_PIN_SET);
    for(m=0;m<speedcommu;m++)HAL_GPIO_WritePin(A_SCL_GPIO_Port,A_SCL_Pin,GPIO_PIN_RESET);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
uint8_t I2cA_getAck(void)
{
  uint8_t ack;     
    for(m=0;m<speedcommu;m++)HAL_GPIO_WritePin(A_SDA_GPIO_Port,A_SDA_Pin,GPIO_PIN_SET);
    for(m=0;m<speedcommu;m++)HAL_GPIO_WritePin(A_SCL_GPIO_Port,A_SCL_Pin,GPIO_PIN_SET);
    if(HAL_GPIO_ReadPin(A_SDA_GPIO_Port,A_SDA_Pin)==GPIO_PIN_SET)ack=1;else ack=0;
    for(m=0;m<speedcommu;m++)HAL_GPIO_WritePin(A_SCL_GPIO_Port,A_SCL_Pin,GPIO_PIN_RESET);
  return ack;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
uint8_t I2cA_read()
{
  uint8_t i,dat=0;
    for(m=0;m<speedcommu;m++)HAL_GPIO_WritePin(A_SDA_GPIO_Port,A_SDA_Pin,GPIO_PIN_SET);
  for(i=0;i<8;i++)
    {
        for(m=0;m<speedcommu;m++)HAL_GPIO_WritePin(A_SCL_GPIO_Port,A_SCL_Pin,GPIO_PIN_SET);
        dat<<=1;
        if(HAL_GPIO_ReadPin(A_SDA_GPIO_Port,A_SDA_Pin)==GPIO_PIN_SET)dat|=0x01;else dat&=0xFE;
        for(m=0;m<speedcommu;m++)HAL_GPIO_WritePin(A_SCL_GPIO_Port,A_SCL_Pin,GPIO_PIN_RESET);
    }
    return dat;
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void I2cA_write(uint8_t dat)
{
  uint8_t i;
  for(i=0;i<8;i++)
  {
        if((dat&0x80)==0x80)
        {
            for(m=0;m<speedcommu;m++)HAL_GPIO_WritePin(A_SDA_GPIO_Port,A_SDA_Pin,GPIO_PIN_SET);
        }
        else
        {
            for(m=0;m<speedcommu;m++)HAL_GPIO_WritePin(A_SDA_GPIO_Port,A_SDA_Pin,GPIO_PIN_RESET);
        }
        dat<<=1;
        for(m=0;m<speedcommu;m++)HAL_GPIO_WritePin(A_SCL_GPIO_Port,A_SCL_Pin,GPIO_PIN_SET);        
        for(m=0;m<speedcommu;m++)HAL_GPIO_WritePin(A_SCL_GPIO_Port,A_SCL_Pin,GPIO_PIN_RESET);
  }
  I2cA_getAck();
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
uint16_t I2cA_fromDevice(uint8_t deviceAdd,uint8_t datAdd)
{
    uint8_t dat;uint16_t temp;
    I2cA_start();
    I2cA_write(deviceAdd);
    I2cA_write(datAdd);
    I2cA_start();
    I2cA_write(deviceAdd+1);
    dat=I2cA_read();
    I2cA_sendAck(0);//1
    temp=I2cA_read();
    I2cA_sendAck(1);//0
    temp<<=8;
    temp+=dat;
    I2cA_stop();
    return temp;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
uint16_t CollectionTempA(void)
{
    if(Command[0]==0x55AA)tempReadv[0]=I2cA_fromDevice(0x30,0x1C);        //Read temperature
    Command[0]=I2cA_fromDevice(0x30,0x1F);//0x1F);                //0x55AA
    return tempReadv[0];
}


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲有码转帖 | 五月天国产 | 狠狠操婷婷 | 在线亚洲免费视频 | 亚洲精选久久 | 999久久精品 | 欧美日韩高清在线观看 | 网站国产 | 国产欧美一区二区在线观看 | 天天看逼 | 久久综合狠狠综合久久综合88 | 97国产精品 | 99国产精品99久久久久久粉嫩 | 天堂免费 | 日韩成人精品一区二区三区 | 久久在线看 | 中文字幕在线国产 | 久久国产精品久久 | 亚洲精品一区二区三区中文字幕 | 欧美在线观看一区 | 久久国产亚洲 | 国产一区二区 | 日韩视频观看 | 精品av | 可以在线观看av的网站 | 观看av | 日本精品视频在线观看 | 成人精品久久久 | 国产一区二区三区在线 | 国产精品一区二区在线 | 免费观看一级特黄欧美大片 | 精品欧美一区二区三区久久久 | 日本精品视频一区二区 | www.99热.com| 日本色综合 | 成人午夜精品一区二区三区 | 日韩在线h | 日韩在线观看网站 | 青久草视频 | 一区二区三区精品视频 | 国产农村妇女精品一二区 |