Dht11與Ds18b20溫度感測器使用
阿新 • • 發佈:2019-01-01
使用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
程式碼也很規範。
最後上個圖,我的成品。