查看: 10081|回复: 3

STM32F0 #02进程帖(二)---串口实现DS18B20温度传感器温度显示

[复制链接]
  • TA的每日心情
    奋斗
    2016-8-25 12:42
  • 签到天数: 692 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2012-11-6 13:59:18 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 fengye5340 于 2012-11-6 14:00 编辑

        STM32F0 #02进程帖(二)---串口实现DS18B20温度传感器温度显示
        在调试DS18B20的过程中,出了不少问题,也解决了一些问题,可以说不亚于进行了一次小战斗了。这次战斗虽然付出了一些代价,最终还是获胜了,哈哈!
        第一个插曲:"首次初始化失败"
        A、刚开始,DS18B20初始化没有成功,问题肯定出在时序上了,因为我最初用定时器2实现的精确延时,中断方式实现。在做延时的时候,5us的延时,示波器显示7.75us。50us
    的延时,示波器显示为51.225us,600us的延时,显示为600.4475us,延时时间很精准,可就是初始化不成功。很是纳闷。所以,以为是时序延时时间的问题,接着就严格按照在MSP430上跑得没问题
    的程序中的时序来调整,还是不成功。确实挺奇怪了,难道遇到鬼了,哈哈。最后,实在没办法了,就用软件延时试试吧,结果一试,串口显示:"DS18B20初始化成功"而不是那个“检测失败!”的字符了,那个小激动啊!
        B、因为本人刚接触STM32不久,对这个片子认识不是很深刻,所以感觉是调用中断的原因,因为用定时器中断实现的us级延时调用中断过频,
    对时序要求严格的DS18B20会造成很大影响。如果哪位大虾,有不同意见,欢迎提供建议啊。
        C、软件延时这个方法倒好,不过是浪费CPU了,对ARM--M系列来说,用systick实现延时才是王道,这个是硬件,弄好了不用管它就行。
    参考了网上的一些资料,整理出了一些延时方法,见论坛已发资料。最终确定了用SYSTICK实现的延时来实现DS18B20温度的读取。
       
        第二个插曲:"温度显示为零"
        A、打通了初始化这一关后,就要实现温度读取了,结果读出来以后,显示的当前温度为0 ℃,明明是严格按照时序来读写的,怎么会出问题呢。
        后来又把数据手册看了一下,对照这示波器,把延时时间又进行了多次调整,才终于显示成功。
        B、刚开始处理只有整数部分的显示,后来有增加了一位小数部分。这个就是软件问题了,很好实现,DS18B20的精度有限,只有0.5℃的精度,做多了也没有意义。
    下面是调试成功的图片和一些资料,希望对有需要的人有帮助。

    电路板连接实物

    电路板连接实物

    DS18B20

    DS18B20

    串口显示界面-1

    串口显示界面-1

    串口显示界面-2

    串口显示界面-2

    DS18B20--控制流程.rar

    2.16 KB, 下载次数: 334

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-9-15 06:28
  • 签到天数: 3747 天

    连续签到: 60 天

    [LV.Master]伴坛终老

    发表于 2012-11-6 14:02:31 | 显示全部楼层
    关注一下的,以前用pic做过
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    半小时前
  • 签到天数: 2099 天

    连续签到: 11 天

    [LV.Master]伴坛终老

    发表于 2015-2-2 19:03:54 | 显示全部楼层
    STM32F0 #02进程帖
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-6-18 14:01:28 | 显示全部楼层
    楼主,能不能把串口发送的程序给我瞅瞅啊
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-25 10:48 , Processed in 0.150261 second(s), 22 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.