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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1762|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲日本欧美 | 欧美成人精品激情在线观看 | 热久久免费视频 | 伊人久久久 | 中文字幕1区 | 国产福利在线 | 日韩在线播放视频 | 在线免费看a | 精品视频久久 | 久久99精品国产麻豆91樱花 | 97久久久 | 国产精品久久免费 | 欧美日韩一区在线 | 性生活网址| 玖玖精品视频 | 国产精品黄 | 狠狠躁日日躁夜夜躁2022麻豆 | 三级黄色片免费看 | 成人免费在线播放 | 中文字幕日韩高清 | 国产欧美精品 | 黄色一级视频网站 | 国产黄色在线播放 | 成年人黄色网址 | 国产小视频在线 | 中文在线观看视频 | 男女久久久 | 中文字幕亚洲精品 | 男女啪啪免费网站 | 日本天堂网 | 免费的av| 涩涩视频免费观看 | 国产麻豆91| 日韩视频网 | 成人黄色免费网站 | 色噜噜狠狠一区二区三区 | 天天操天天操 | 日韩欧美黄色 | 一区二区小视频 | 黄色www| 黄网站在线播放 |