野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14054|回复: 15

请教关于ds18b20的代码移植问题?

[复制链接]
发表于 2018-1-3 22:02:01 | 显示全部楼层 |阅读模式
本着代码复制粘贴的就是自己的原则。我对测试成功的DS18B20温度传感器例程进行了复制使用:
源代码见图1:我摘取了bsp_SysTick.h和bsp_ds18b20.h所在文件夹的所有内容到我的工程user里面。
并进行文件包含和相对路径包含,且在我的工程main.c中进行了头文件包含。编译没出现什么问题。
但是每次程序运行到DS18B20初始化函数就出问题(见图2),不知道是什么原因?已经折腾了好几天了。
求教热心大神啊!

图1

图1

图2

图2
回复

使用道具 举报

 楼主| 发表于 2018-1-3 22:03:25 | 显示全部楼层
@flyleaf 求指教!
回复 支持 反对

使用道具 举报

发表于 2018-1-4 10:10:52 | 显示全部楼层
改了gpio口没?时钟对的上吗?单步调试进初始化看看是卡在哪句了撒
回复 支持 1 反对 0

使用道具 举报

发表于 2018-1-4 10:16:00 | 显示全部楼层
记得初始化失败一般都是通信问题,要么管脚接错,上拉电阻啊什么的,要么就是时序对不上,收不到消息,初始化没有错误处理就卡死在那了
回复 支持 1 反对 0

使用道具 举报

发表于 2018-1-4 11:45:54 | 显示全部楼层
systick函数对比下是不是一样的,还有相应的中断服务函数应该没有写才会卡住吧
回复 支持 1 反对 0

使用道具 举报

发表于 2018-1-4 13:48:26 | 显示全部楼层
很多年以前我以为所有东西   .C   .H  拉过去就可以用了,直到我发现,你必须看一下it.c
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-1-4 20:35:40 | 显示全部楼层
乱世 发表于 2018-1-4 13:48
很多年以前我以为所有东西   .C   .H  拉过去就可以用了,直到我发现,你必须看一下it.c

请问你说的it.c是指的哪个文件?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-4 20:36:57 | 显示全部楼层
flyleaf 发表于 2018-1-4 11:45
systick函数对比下是不是一样的,还有相应的中断服务函数应该没有写才会卡住吧

systick这个是整个搬过去的,都是一样的,没有找到中断服务函数啊?请问哪个是啊?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-4 20:37:27 | 显示全部楼层
非谢家之宝树 发表于 2018-1-4 10:16
记得初始化失败一般都是通信问题,要么管脚接错,上拉电阻啊什么的,要么就是时序对不上,收不到消息,初始 ...

都排查了,就是不知道问题出在哪?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-4 20:39:40 | 显示全部楼层
非谢家之宝树 发表于 2018-1-4 10:10
改了gpio口没?时钟对的上吗?单步调试进初始化看看是卡在哪句了撒

GPIO没问题,用单独的温度例程试过了,你说的时钟不知道是哪方面,脉冲延时函数都是一样的啊,单步调试了,一到while(DS18B20_Init())就不动了。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-4 21:08:28 | 显示全部楼层
感谢各位大神的指教!感谢@非谢家之宝树@flyleaf@乱世。程序调出来了,是stm32f10x_it.c中的问题,忘了在SysTick_Handler函数中加入TimingDelay_Decrement();
多谢指教!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-4 21:09:01 | 显示全部楼层
乱世 发表于 2018-1-4 13:48
很多年以前我以为所有东西   .C   .H  拉过去就可以用了,直到我发现,你必须看一下it.c

谢谢,程序调出来了,是stm32f10x_it.c中的问题,忘了在SysTick_Handler函数中加入TimingDelay_Decrement();
多谢指教!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-4 21:09:24 | 显示全部楼层
flyleaf 发表于 2018-1-4 11:45
systick函数对比下是不是一样的,还有相应的中断服务函数应该没有写才会卡住吧

谢谢,程序调出来了,是stm32f10x_it.c中的问题,忘了在SysTick_Handler函数中加入TimingDelay_Decrement();
多谢指教!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-4 21:09:52 | 显示全部楼层
非谢家之宝树 发表于 2018-1-4 10:16
记得初始化失败一般都是通信问题,要么管脚接错,上拉电阻啊什么的,要么就是时序对不上,收不到消息,初始 ...

谢谢,程序调出来了,是stm32f10x_it.c中的问题,忘了在SysTick_Handler函数中加入TimingDelay_Decrement();
多谢指教!
回复 支持 反对

使用道具 举报

发表于 2018-11-5 18:41:05 | 显示全部楼层
非谢家之宝树 发表于 2018-1-4 10:16
记得初始化失败一般都是通信问题,要么管脚接错,上拉电阻啊什么的,要么就是时序对不上,收不到消息,初始 ...

请问指南者连接DS18B20需要连接上拉电阻么?要怎么连接?
回复 支持 反对

使用道具 举报

发表于 2018-11-5 22:08:33 | 显示全部楼层
鱼仔 发表于 2018-11-5 18:41
请问指南者连接DS18B20需要连接上拉电阻么?要怎么连接?

指南者有专门的ds18b20接口吗?有的话就不用,没有就要接一个上拉电阻
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-25 15:11 , Processed in 0.033326 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表