4637|11

3

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

使用MSP432P401R进行DS18B20编程时遇到的问题 [复制链接]

 
  前段时间仿照51单片机的程序对DS18B20进行编程,遇到了一些问题。我是一个初学者,希望大家可以给我一点建议  主要是在读这个环节出现了错误,无论是18B20返回什么样的电平,最后都是高电平,所以我总是读出来的温度值总是0.所以我重新对高低电平采集这块进行了学习,发现了新的问题。
  1、根据4.7高低电平来控制LED的开通与关断,请问这个程序问题出在哪里啊,希望大神能帮助我一下。
  int main(void)
   {
    /* Halting the Watchdog */
    MAP_WDT_A_holdTimer();


    GPIO_setAsOutputPin(GPIO_PORT_P1,GPIO_PIN0);       
    GPIO_setOutputHighOnPin(GPIO_PORT_P1,GPIO_PIN0);//LED亮


    MAP_CS_setExternalClockSourceFrequency(32000,48000000);
    MAP_GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_PJ,
            GPIO_PIN0 | GPIO_PIN1, GPIO_PRIMARY_MODULE_FUNCTION);
    MAP_CS_startLFXT(false);
    MAP_CS_initClockSignal(CS_ACLK, CS_LFXTCLK_SELECT, CS_CLOCK_DIVIDER_1);
    MAP_CS_initClockSignal(CS_BCLK, CS_LFXTCLK_SELECT, CS_CLOCK_DIVIDER_1);


    //4.7为高电平则LED灭,4.7为低电平LED亮,
    while(1)


    {
     MAP_GPIO_setAsInputPin(GPIO_PORT_P4, GPIO_PIN7);
        if(GPIO_getInputPinValue(GPIO_PORT_P4,GPIO_PIN7))
       {
            GPIO_setOutputLowOnPin(GPIO_PORT_P1,GPIO_PIN0);
               delay_ms(100);
        }
       else
              {
       GPIO_setOutputHighOnPin(GPIO_PORT_P1,GPIO_PIN0);
               delay_ms(100);
              }
    }
    }
2、并且我的板子只要一插上电,就立马烫的不行,热的烫手,但是板子还是能够跑例程,还没有坏。这个问题怎么解决啊,请问,希望板子别太烫了?
   

最新回复

今天我把芯片给烧了,现在芯片上电就发烫,烫的不行   详情 回复 发表于 2019-8-21 19:45
 
点赞 关注

回复
举报

1059

帖子

1

TA的资源

版主

沙发
 
检查你的板子问题,板子有问题,那么烫,有可能烧坏部分电路
 
 

回复

1万

帖子

141

TA的资源

版主

板凳
 
先确认板子上哪个/哪些元件发热。对18B20的编程,务必仔细读懂其器件手册并弄清I2C的操作时序即可,不要去仿照别人的代码,一定要在自己弄懂的前提下去编程,这对初学者极其重要。另外,求助时不要简单的直接贴代码,应该上细化的流程图。而使用流程图进行软件规划和编程,是迅速提高自己编程能力的高效手段,不要怕麻烦偷懒。你现在花功夫在正确的地方,下一分功,以后会有十倍、百倍的回报。如果像部分初学者那样懒于动手和动脑的话,那注定将来也是个屌丝、卢瑟。

点评

DS18B20是单总线,不是I2C  详情 回复 发表于 2017-4-6 13:07
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

1059

帖子

1

TA的资源

版主

4
 
chunyang 发表于 2017-4-6 11:51
先确认板子上哪个/哪些元件发热。对18B20的编程,务必仔细读懂其器件手册并弄清I2C的操作时序即可,不要去 ...

DS18B20是单总线,不是I2C

点评

笔误,不影响前帖的意思。  详情 回复 发表于 2017-4-6 14:09
 
 
 

回复

2774

帖子

8

TA的资源

版主

5
 
本帖最后由 strong161 于 2017-4-6 14:04 编辑

18B20已经烧掉了! 18B20接反超过一定的时间就会烧掉,而且烧掉了就只发热。
 
 
 

回复

1万

帖子

141

TA的资源

版主

6
 
qwerghf 发表于 2017-4-6 13:07
DS18B20是单总线,不是I2C

笔误,不影响前帖的意思。
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

4008

帖子

0

TA的资源

版主

7
 
烫是不对的,先解决这个问题哈

“无论是18B20返回什么样的电平,最后都是高电平”不太理解你这句话,总线不操作就是高电平啊
 
 
 

回复

3471

帖子

13

TA的资源

五彩晶圆(高级)

8
 
找到过热的器件,一个一个摸。看看周围有没有短路什么的,还是电路设计本身就不合理。
无论是18B20返回什么样的电平,最后都是高电平。  你是确定18B20返回了不同的电平,还是猜测。调硬件没有猜测。只有实际情况。如果是实际情况,根据什么知道18B20返回了不同的电平。最好测测波形。便于分析。确定18B20是否处于工作状态。
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

9
 
huo_hu 发表于 2017-4-6 19:18
烫是不对的,先解决这个问题哈

“无论是18B20返回什么样的电平,最后都是高电平”不太理解你这句话,总 ...

我控制总线,初始化跟写入操作都可以执行,接着到了读温度值这个环节,本来是18b20返回16位的高低电平,组成温度值,发现返回值都是高电平,根本就不能反应当前的温度值。
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

10
 
ienglgge 发表于 2017-4-8 02:00
找到过热的器件,一个一个摸。看看周围有没有短路什么的,还是电路设计本身就不合理。
无论是18B20返回什 ...

18b20可以正常工作,主要是单片机的那个芯片特别烫,烫手,我再看看硬件电路,,
同时我还在初始化这个步骤里面设着了一个返回值,表明已经成功的初始化了,可以正常工作。就是到了读这个环节的时候,通过示波器就可以看出来好奇怪,只有高

点评

18b20拆了,看看单片机还热不热,热就不是18b20的事,查别的引脚,要不热就看18b20和单片机之间哪不正常。  详情 回复 发表于 2017-4-10 21:32
 
 
 

回复

3471

帖子

13

TA的资源

五彩晶圆(高级)

11
 
yangwangxiao 发表于 2017-4-10 11:06
18b20可以正常工作,主要是单片机的那个芯片特别烫,烫手,我再看看硬件电路,,
同时我还在初始化这个 ...

18b20拆了,看看单片机还热不热,热就不是18b20的事,查别的引脚,要不热就看18b20和单片机之间哪不正常。
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

12
 

今天我把芯片给烧了,现在芯片上电就发烫,烫的不行

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表