//=========================DS18b20.h=========================//
/*-----------------------------------------------
DS18b20 驱动程序
------------------------------------------------*/
#ifndef __DS18B20_H
#define __DS18B20_H
typedef enum{FAILED = 0 ,PASSED = !FAILED} TestStatus ;
#define DQ_GPIO GPIOD
#define DQ_GPIO_Pin GPIO_Pin_5
//REGISTER COMMANDS
#define REGISTER_9_BITS 0x1F
#define REGISTER_10_BITS 0x3F
#define REGISTER_11_BITS 0x5F
#define REGISTER_12_BIT2 0x7F
//ROM COMMANDS
#define ROM_Search_Cmd 0xF0
#define ROM_Read_Cmd 0x33
#define ROM_Match_Cmd 0x55
#define ROM_Skip_Cmd 0xCC
#define ROM_AlarmSearch_Cmd 0xEC
//DS18b20 FUNCTION COMMANDS
#define Convert_T 0x44
#define Write_Scratchpad 0x4E
#define Read_Scratchpad 0xBE
#define Copy_Scratchpad 0x48
#define Recall_EEPROM 0x88
#define Read_PowerSupply 0x84
#define DQ_Write_1() GPIO_SetBits(DQ_GPIO ,DQ_GPIO_Pin) //写 1
#define DQ_Write_0() GPIO_ResetBits(DQ_GPIO ,DQ_GPIO_Pin)//写 0
#define DQ_ReadBit() GPIO_ReadInputDataBit(DQ_GPIO ,DQ_GPIO_Pin) //读 DQ 上的值
extern void GPIO_DQ_Out_Mode(void) ; //DQ 输出模式
extern void GPIO_DQ_Input_Mode(void) ; //DQ 输入模式
extern void Tx_ResetPulse(void) ; //发送复位脉冲
extern void Rx_PresencePulse(void) ; //接受应答信号
extern void Write_OneByte_ToDS18b20(unsigned char data) ; //写一个字节到 18b20
extern unsigned char Read_OneByte_FromDS18b20(void) ; //从 18b20 读一个字节
extern void Read_Temperature(unsigned char *sign ,unsigned char *interger ,