完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
劳烦大神帮小弟看看问题出在那,下面时DS18b20的读取程序; 目前初始化成功,但是读出来的数据时+000.0 程序跑到u16 DS18b20_RTemp(void)的 else { Symbol =1; Rtemp = temp ; }里面去了。我是想的是+数就到这来。 我现在就想看看他读出来时什么数,所以还没计算。 /********************************************main.c********************************************/ #include "GPIO.h" #include "LCD1602.h" #include "DS18b20.h" void LCD1602_Dis(void); void ADC_Count(void); void Systick_ms(u16 nms); u8 dis1[] = {" Voltage: . V"}; u8 dis2[] = {" Temp: . ^C"}; u8 LCD1602_Number[] = {0x30 , 0x31 , 0x32 , 0x33 , 0x34 , 0x35 , 0x36 , 0x37 , 0x38 , 0x39 }; u8 LCD1602_fh[] ={ 0x2d , 0x2b }; u8 qian ,bai, shi ,ge; u8 DS18b20_bai,DS18b20_shi,DS18b20_ge,DS18b20_xiao; u8 flag ,Symbol ,Temp_js; int main() { GPIOB_RCC_Config(); GPIOB_Config(); LCD1602_init(); LCD1602_Dis(); while(1) { Systick_ms (1000); DS18b20_init(); DS18b20_RTemp(); DS18b20_Value(); if(flag ==1) { LCD1602_Pos(6); LCD1602_Wdata(LCD1602_fh[Symbol ]); LCD1602_Pos(7); LCD1602_Wdata(LCD1602_Number[DS18b20_bai ]); Systick_ms(50); LCD1602_Pos(8); LCD1602_Wdata(LCD1602_Number[DS18b20_shi ]); Systick_ms(50); LCD1602_Pos(9); LCD1602_Wdata(LCD1602_Number[DS18b20_ge ]); Systick_ms(50); LCD1602_Pos(11); LCD1602_Wdata(LCD1602_Number[DS18b20_xiao ]); Systick_ms(50); } else { LCD1602_Pos(6); LCD1602_Wdata(LCD1602_fh[0 ]); LCD1602_Pos(7); LCD1602_Wdata(LCD1602_fh[0 ]); Systick_ms(50); LCD1602_Pos(8); LCD1602_Wdata(LCD1602_fh[0 ]); Systick_ms(50); LCD1602_Pos(9); LCD1602_Wdata(LCD1602_fh[0 ]); Systick_ms(50); LCD1602_Pos(11); LCD1602_Wdata(LCD1602_fh[0 ]); Systick_ms(50); } } } void LCD1602_Dis(void) { u8 j = 0; LCD1602_Pos(0); while(dis2[ j ] != ' |