单个DS18B20采集的温度想通过串口发送到电脑上,但是显示都是0,请问大神们有人做过吗,求指教

2019-08-18 18:46发布

{LPLJJ0H8)A%K01JYRV~TGX.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
16条回答
szczyb1314
2019-08-19 12:17
#if 0与#endif之间的代码不执行,所有关于LCD显示的都注释掉了。
        u8 t=0;                            
        short temperature;   
        delay_init();                     //延时函数初始化          
        uart_init(9600);                 //串口初始化为9600
        LED_Init();                                  //初始化与LED连接的硬件接口
        while(DS18B20_Init());
       
        while(1)
        {                        
                if(t%10==0)//每100ms读取一次
                {                                                                          
                        temperature=DS18B20_Get_Temp();       
                       
                        if(temperature<0)
                        {
                                //LCD_ShowChar(60+40,150,'-',16,0);                        //显示负号
                                temperature=-temperature;                                        //转为正数
                        }
                        //else LCD_ShowChar(60+40,150,' ',16,0);                        //去掉负号
                        //LCD_ShowNum(60+40+8,150,temperature/10,2,16);        //显示正数部分            
                           //LCD_ShowNum(60+40+32,150,temperature%10,1,16);        //显示小数部分
                        printf("temperature=%f ",temperature/10.0);
                }                                  
                 delay_ms(10);
                t++;
                if(t==20)
                {
                        t=0;
                        LED0=!LED0;
                }
        }

一周热门 更多>