u8 DS18B20_Presence(void);// function declare
u8 DS18B20_Init(void)
{
GPIO_InitTypeDef GPPIO_Initstruce;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG,ENABLE);
GPPIO_Initstruce.GPIO_Pin= GPIO_Pin_11;
GPPIO_Initstruce.GPIO_Mode= GPIO_Mode_Out_PP;
GPPIO_Initstruce.GPIO_Speed= GPIO_Speed_50MHz;
GPIO_Init(GPIOG,&GPPIO_Initstruce);
GPIO_SetBits(GPIOG,GPIO_Pin_11); //pull up high voltage ,chip edle
DS18B20_Reset();//Reset
return DS18B20_Presence();
}
void DS18B20_Reset(void)
{
//DS18B20_OUT();//
DS18B20_OUT();
Mode_OUT =0;//pull low voltage
delay_us(750);//delay 900 us
Mode_OUT = 1;//Release DQ bus
//DS18B20_IN();//relese DQ bus
u8 DS18B20_Init(void)
{
GPIO_InitTypeDef GPPIO_Initstruce;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG,ENABLE);
GPPIO_Initstruce.GPIO_Pin= GPIO_Pin_11;
GPPIO_Initstruce.GPIO_Mode= GPIO_Mode_Out_PP;
GPPIO_Initstruce.GPIO_Speed= GPIO_Speed_50MHz;
GPIO_Init(GPIOG,&GPPIO_Initstruce);
GPIO_SetBits(GPIOG,GPIO_Pin_11); //pull up high voltage ,chip edle
DS18B20_Reset();//Reset
return DS18B20_Presence();
}
void DS18B20_Reset(void)
{
//DS18B20_OUT();//
DS18B20_OUT();
Mode_OUT =0;//pull low voltage
delay_us(750);//delay 900 us
Mode_OUT = 1;//Release DQ bus
//DS18B20_IN();//relese DQ bus
}
u8 DS18B20_Presence(void)
{
u8 times = 0;
DS18B20_IN();//Input Mode
while(Mode_IN && times <60)
{