温度传感器18B20
STM32F103程序
/*==========================================================================
//DS18B20数字温度传感器
==========================================================================*/
#ifndef __DS18B20_H
#define __DS18B20_H
#include "stm32f1xx_hal.h"
IO设置
#define DS18B20_BIT GPIO_PIN_7
#define DS18B20_PORT GPIOB
//IO方向设置
//10:上拉输入 00:输入模式
//00:推挽输出模式 11:输出模式,最大速度50MHz
#define DS18B20_IO_IN() {DS18B20_PORT->CRL&=0X0FFFFFFF;DS18B20_PORT->CRL|=0x80000000;}
#define DS18B20_IO_OUT() {DS18B20_PORT->CRL&=0X0FFFFFFF;DS18B20_PORT->CRL|=0X30000000;}
#define CLR_DS18B20() HAL_GPIO_WritePin (DS18B20_PORT,DS18B20_BIT,GPIO_PIN_RESET )
#define SET_DS18B20() HAL_GPIO_WritePin (DS18B20_PORT,DS18B20_BIT,GPIO_PIN_SET )
#define DS18B20_DQ_IN HAL_GPIO_ReadPin(DS18B20_PORT, DS18B20_BIT)
///
void DS18B20_Start(void); //开始温度转换
void DS18B20_Write_Byte(uint8_t dat);//写入一个字节
uint8_t DS18B20_Read_Byte(void); //读出一个字节
uint8_t DS18B20_Read_Bit(void); //读出一个位
uint8_t DS18B20_Check(void); //检测是否存在DS18b20
void DS18B20_Rst(void); //复位DS18B20
/*********