用STM32讀取18B20中的溫度,并在oled上實時顯示,主函數以及演示效果如下
51hei圖片20220607061223.jpg (2.2 MB, 下載次數: 52)
下載附件
插上18B20
2022-6-7 06:14 上傳
51hei圖片20220607061230.jpg (2.15 MB, 下載次數: 46)
下載附件
拔下18B20
2022-6-7 06:14 上傳
單片機源程序如下:
- #include "stm32f10x.h" // Device header
- #include "Oled.h"
- #include "Delay.h"
- #include "DS18B20.h"
- int main ()
- {
- uint8_t i=0;
- uint8_t State;
- OLED_Init();
-
- while(1)
- {
- i=DS18B20_Init();// 判斷18B20是否存在,i=1,表示18B20存在,0表示18B20不存在
- OLED_ShowString(1,1,"Temperature:");
- if(i)
- {
- if(Sign()==0)// 判斷溫度正負
- {
- OLED_ShowString(2,1,"+");
- }else
- {
- OLED_ShowString(2,1,"-");
- }
- DS18B20_Refresh();// 刷新
- OLED_ShowNum(2,2,Integer_Process(),3);// 顯示溫度的整數部分
- OLED_ShowNum(2,6,Decimal_Process(),3);// 顯示溫度的小數部分
- OLED_ShowString(2,5,".");
- }else
- {
- OLED_ShowString(2,1,"NO SENSOR !"); // 18B20不存在
-
- }
-
- if(State!=i)// 判斷18B20是否拔插,若拔插了18B20則進行清屏
- {
- State=i;
- OLED_Clear();
- }
-
- }
- }
復制代碼
Keil代碼下載:
代碼.7z
(177.89 KB, 下載次數: 226)
2022-6-25 17:49 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|