基于stm32实现DS18B20温度检测仿真

发布时间 2023-05-05 09:09:58作者: Yoku

一、cubmax设置

PA0作为DS18B20数据口

 打开串口1,显示温度信息

时钟树设置72MHZ。

二、程序

头文件

/* USER CODE BEGIN Includes */
#include "DS18B20.h"
#include "stdio.h"
/* USER CODE END Includes */

串口重定向

/* USER CODE BEGIN 0 */
int fputc(int ch ,FILE *f){
    HAL_UART_Transmit(&huart1, (uint8_t*)&ch, 1, 0xffff);
    return ch;
}
float temperature;
/* USER CODE END 0 */

 DS18B20初始化

 /* USER CODE BEGIN 2 */
      DS18B20_Start(); // ds1820 start convert
      temperature=DS18B20_Get_Temp();
      HAL_Delay(750);
      printf("DS18B20 init success!!!\r\n");
  /* USER CODE END 2 */

 显示温度数据

  while (1)
  {            
        temperature=DS18B20_Get_Temp();    
        printf("当前温度: %.2f\r\n", temperature);    
        HAL_Delay(100);        /* 100ms 读取一次温度值 */        
    /* USER CODE END WHILE */
    /* USER CODE BEGIN 3 */
  }

 DS18B20驱动

链接:https://pan.baidu.com/s/1AcReAjdcxlw8RmoquWxcNw
提取码:8fyt

三、Proteus设置

 虚拟串口

 单片机时钟72MHZ

 四、演示效果