玩轉X-CTR100 l STM32F4 l DS18B20單總線溫度傳感器

我造輪子,你造車,創客一塊兒造起來!塔克創新資訊【塔克社區 www.xtark.cn 】【塔克博客 www.cnblogs.com/xtark/ 編程

    

本文介紹X-CTR100控制器 擴展DS18B20溫度傳感器。 函數

原理

DS18B20 是美信公司的一款溫度傳感器,單片機能夠經過 1-Wire 協議與 DS18B20 進行通訊,最終將溫度讀出。1-Wire 總線的硬件接口很簡單,只須要把 DS18B20 的數據引腳和單片機的一個 IO 口接上就能夠了。硬件的簡單,隨之而來的,就是軟件時序的複雜。 ui

DS18B20 經過編程,能夠實現最高 12 位的溫度存儲值,在寄存器中,以補碼的格式存儲。 spa

一共 2 個字節,LSB 是低字節,MSB 是高字節,其中 MSb 是字節的高位,LSb 是字節的低位。你們能夠看出來,二進制數字,每一位表明的溫度的含義,都表示出來了。其中 S表示的是符號位,低 11 位都是 2 的冪,用來表示最終的溫度。DS18B20 的溫度測量範圍是從-55 度到+125 度,而溫度數據的表現形式,有正負溫度,寄存器中每一個數字如同卡尺的刻度同樣分佈。 blog

例程

初始化DS18B20溫度傳感器,獲取溫度值並輸出顯示。 接口

硬件說明

硬件資源: 資源

  • 串口UART1
  • LI接口(PA4接口)
  • 擴展模塊DS18B20傳感器(需自備)

硬件鏈接: get

模塊鏈接到LI接口,數據接口鏈接PA4,做爲普通GPIO口使用。 博客

軟件生態

X-SOFT軟件生態,X-API文件以下。 it

ax_ds18b20.c——X-CTR100 擴展DS18B20傳感器源文件

ax_ds18b20.h——X-CTR100 擴展DS18B20傳感器頭文件

操做函數以下:

uint8_t AX_DS18B20_Init(void); //DS18B20初始化

int16_t AX_DS18B20_ReadTemp(void); //DS18B20讀取溫度

軟件說明

主程序代碼以下。

int main(void)

{

    int16_t temperature;

 

    //X-CTR100初始化

    AX_Init(115200);

    printf("***X-CTR100 DS18B20溫度傳感器例程***\r\n\r\n");

 

    //DHT11初始化

    while (AX_DS18B20_Init())

    {

        printf("錯誤,請檢查DS18B20是否安裝正確!!\r\n");

        AX_Delayms(500);

    }

 

    while (1)

    {

        temperature = AX_DS18B20_ReadTemp();        //讀取溫度值

 

        printf("溫度值X10:%d \r\n", temperature);

 

        AX_Delayms(1000);

    }

}

實現效果

運行效果以下圖所示。

    

相關文章
相關標籤/搜索