1. 程式人生 > >Dht11與Ds18b20溫度感測器使用

Dht11與Ds18b20溫度感測器使用

使用MCU,STM32F103C8T6+OLED顯示,板子自己手焊的。

說說使用感想DS18B20不愧是大廠的感測器,功能豐富,但使用起來確實有點麻煩。

DHT11應該就是國產模仿的吧,功能簡單,沒有唯一標識碼,沒有RAM,沒有報警等等功能。

對照手冊編寫邏輯程式碼問題不大,關鍵就是STM32 HAL庫裡面us延時的問題,我用的是模仿在hal_rcc.c裡面的一個函式

/**
  * @brief  This function provides delay (in milliseconds) based on CPU cycles method.
  * @param  mdelay: specifies the delay time length, in milliseconds.
  * @retval None
  */
static void RCC_Delay(uint32_t mdelay)
{
  __IO uint32_t Delay = mdelay * (SystemCoreClock / 8U / 1000U);
  do 
  {
    __NOP();
  } 
  while (Delay --);
}

把1000改成1000000,延時有誤差,但也算能將就用。其中肯定有更好的辦法,以後再看吧。

其實沒什麼難的,都可以自己根據手冊,將程式碼敲出來,這個連結寫的DS18B20,特別值得參考:

http://bbs.elecfans.com/jishu_920279_1_1.html

程式碼也很規範。

最後上個圖,我的成品。