打印

DS18B20温度测量

[复制链接]
1813|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
konglingfei0615|  楼主 | 2014-8-20 08:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
xg3469| | 2014-8-20 09:13 | 只看该作者
可能时序上还需要调整一下。

使用特权

评论回复
板凳
konglingfei0615|  楼主 | 2014-8-20 09:55 | 只看该作者
刚上电温度显示是正常的啊,如果时序有问题应该一上电就显示不正常啊。

使用特权

评论回复
地板
完美世界吧| | 2014-8-20 11:02 | 只看该作者
前十~~~~果断插入

使用特权

评论回复
5
dirtwillfly| | 2014-8-20 11:29 | 只看该作者
是不是温度换算部分的代码有问题?

使用特权

评论回复
6
konglingfei0615|  楼主 | 2014-8-20 15:32 | 只看该作者
dirtwillfly 发表于 2014-8-20 11:29
是不是温度换算部分的代码有问题?

没有问题啊,以前用430成功测量过啊,怎么换了个CPU就不行了呢

使用特权

评论回复
7
konglingfei0615|  楼主 | 2014-8-20 15:33 | 只看该作者
dirtwillfly 发表于 2014-8-20 11:29
是不是温度换算部分的代码有问题?

//获取温度
unsigned int Get_Tmp(void)
{
        u8 a=0;
        u8 b=0;
        unsigned int tmp ;
//        float temp=0.0f;
//        __disable_irq();        //关闭总中断     
    TEMP_18b20Init();
    TEMP_WByte(ROM_Read_Cmd);
  
    TEMP_18b20Init();
    TEMP_WByte(ROM_Skip_Cmd);//跳过读序列号操作
    TEMP_WByte(Convert_T); //启动温度转换
//    __enable_irq();//开放总中断        
    Delay_Nms(100);//等待DS18b20转换完成
//        __disable_irq();//;    关闭总中断  
    TEMP_18b20Init();
    TEMP_WByte(ROM_Skip_Cmd);
    TEMP_WByte(Read_Scratchpad); //读取寄存器内容(可以从寄存器0读到寄存器8)
   
    a= TEMP_RByte();     //温度低8位
    b= TEMP_RByte();     //温度高8位
   
    TEMP_ResetPulse();  //中断数据读取
    tmp = (b<<8) | a ;
    if(b & 0xF0)
    {
            tmp = ~tmp+1 ;
    }
//        __enable_irq();//开放总中断
   // *interger = (tmp>>4) & 0x00FF;  //整数部分
   // *decimal = (tmp & 0x000F) * 625 ; //小数部分         
// SysTick_CounterCmd(SysTick_Counter_Enable);
//USART_ITConfig( USART1, USART_IT_RXNE, ENABLE );
//        temp=(float) (tmp * 0.0625f);
        return tmp;
}

使用特权

评论回复
8
ningling_21| | 2014-8-20 16:23 | 只看该作者
konglingfei0615 发表于 2014-8-20 15:32
没有问题啊,以前用430成功测量过啊,怎么换了个CPU就不行了呢

两个CPU的运行速度肯定不一样,这个快了不少...

使用特权

评论回复
9
命中注定0818| | 2014-8-20 21:45 | 只看该作者

使用特权

评论回复
10
chunyang| | 2014-8-20 22:09 | 只看该作者
软件问题。

使用特权

评论回复
11
konglingfei0615|  楼主 | 2014-8-21 09:15 | 只看该作者
ningling_21 发表于 2014-8-20 16:23
两个CPU的运行速度肯定不一样,这个快了不少...

定时是没有问题的,已经排除了

使用特权

评论回复
12
ningling_21| | 2014-8-21 09:23 | 只看该作者
konglingfei0615 发表于 2014-8-21 09:15
定时是没有问题的,已经排除了

程序问题的可能性比较大...

使用特权

评论回复
13
zh_sl| | 2014-8-21 10:52 | 只看该作者
读写时序问题..DS18B20的时序会随温度稍微变化的,可能你读写的时序刚好在临界附近

使用特权

评论回复
14
weilaiheike| | 2014-8-21 11:00 | 只看该作者
楼主再仔细检测下程序吧 这种情况肯定是程序问题 有以下几种可能性 1.DS18B20的驱动函数问题 2.温度换算的问题 3.显示部分驱动的问题

使用特权

评论回复
15
ningling_21| | 2014-8-21 14:26 | 只看该作者
konglingfei0615 发表于 2014-8-21 09:15
定时是没有问题的,已经排除了

数据线的波形怎么样,可以用示波器看看...

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

136

帖子

0

粉丝