stm32F429HAL庫使用DS18B20輸出溫度到電腦串口助手

本程序使用DS18B20數字溫度傳感器把溫度值輸出到電腦的窗口調試助手上,程序是更改原子哥的例程。

  • stm32f29HAL庫
  • DS18B20數字溫度傳感器
  • 串口調試助手

由於移植的程序沒有過多的更改,這裏直接就貼程序了,刪除了顯示屏LCD和SRAM的相關函數,其他沒改多少,主程序如下:

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "ds18b20.h"
#include "pcf8574.h"

int main(void)
{
	u8 t=0;			    
	short temperature;  
	HAL_Init();                     //初始化HAL庫   
    Stm32_Clock_Init(360,25,2,8);   //設置時鐘,180Mhz
    delay_init(180);                //初始化延時函數
    uart_init(115200);              //初始化USART
    LED_Init();                     //初始化LED 
    
    PCF8574_Init();                 //初始化PCF8574
   		
    PCF8574_ReadBit(BEEP_IO);       //由於DS18B20和PCF8574的中斷引腳共用一個IO,
                                    //所以在初始化DS18B20之前要先讀取一次PCF8574的任意一個IO,
                                    //使其釋放掉中斷引腳所佔用的IO(PB12引腳),否則初始化DS18B20會出問題
	while(DS18B20_Init());	        //DS18B20初始化	
	   
	
	while(1)
	{	    	    
		if(t%10==0)//每100ms讀取一次
		{		
			PCF8574_ReadBit(BEEP_IO);   //讀取一次PCF8574的任意一個IO,使其釋放掉PB12引腳,否則讀取DS18B20可能會出問題
		    temperature=DS18B20_Get_Temp();	
			if(temperature<0)
			{
				temperature=-temperature;					//轉爲正數
			}
            printf("the tempture is %.2f\r\n",temperature/10.0);//輸出的溫度爲兩位小數
		}				   
		delay_ms(100);
		t++;
		if(t==20)
		{
			t=0;
			LED0=!LED0;
		}
	}						    
}

這個是還沒加%.2f輸出的結果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章