系统时钟SysTick_Init(168);对于DS18B20的影响

SysTick_Init(168);

就是这个函数,我原来的时候用DS18B20的时候将里面的参数168设为84,结果一直温度的显示一直不对

u8 DS18B20_Read_Bit(void) 			 // read one bit
{
	u8 data;
	DS18B20_IO_OUT();//SET PG11 OUTPUT
	DS18B20_DQ_OUT=0; 
	delay_us(2);
	DS18B20_DQ_OUT=1; 
	DS18B20_IO_IN();//SET PG11 INPUT
	delay_us(12);
	if(DS18B20_DQ_IN)data=1;//
	else data=0;	 
	delay_us(50);           
	return data;
}
这个读取DS18B20一个字节的程序,在温度读取的程序里需要调用,在这里我们用到了delay_us函数,如果我们修改了时钟的分频,那就会造成我们的接受数据时与器件发送的不同。会造成温度不对。

你可能感兴趣的:(STM32,---------)