你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32的DS18B20的问题  

[复制链接]
H_JEN 提问时间:2016-5-2 17:21 /
阅读主题, 点击返回1楼
收藏 3 评论55 发布时间:2016-5-2 17:21
55个回答
LIUBEIHUA 回答时间:2016-5-18 13:57:39
用库函数延时比较长,至少在L152上就有点长了,用开漏的目的就是为了省时间,省去端口切换的时间,时序必须严格按18B20说明书,再就是引线电容,通过示波器观察在读数据的一刻,如果是1,波形必须升到1,
升不到1可适当减小上拉电阻,我接了一个10米长的引线,上拉电阻用的是1K。必须保证15us内数据线能拉到1.
H_JEN 回答时间:2016-5-24 20:54:35
LIUBEIHUA 发表于 2016-5-18 13:57
用库函数延时比较长,至少在L152上就有点长了,用开漏的目的就是为了省时间,省去端口切换的时间,时序必须 ...

谢谢。这个问题已经解决了,其实我也不知道为什么,是端口配置问题,我直接配置寄存器就可以读到数据了,但是用库函数来设置端口的话就不行,不管哪种输入方式。这个问题等我调试好整个东西,再来研究下库函数。
H_JEN 回答时间:2016-5-24 22:34:12
dsjsjf 发表于 2016-5-13 21:08
这个读时序要严格控制的,确认一下你的时钟频率,程序中的延时函数的精度 ...

嗯,谢谢!问题已经解决了,是端口配置问题,我换成直接写寄存器来配置端口就没问题了,本来是用库函数来配置的,还不知是什么原因,换成寄存器就可以了.......等调试整个东西再来研究库函数
依然自我 回答时间:2017-2-23 15:34:35
本帖最后由 依然自我 于 2017-2-23 15:36 编辑

STM32F103 DQ不用改变输入输出,只要初始化设置为推挽输出,外接上拉电阻,本人用PB8跟PB10作为DQ是可以的,正点原子例程改为下面两句。
#define DS18B20_IO_IN()    {;}//{GPIOB->CRH&=0XFFFFFFF0;GPIOB->CRH|=8<<8;}
#define DS18B20_IO_OUT() {;}//{GPIOB->CRH&=0XFFFFFFF0;GPIOB->CRH|=3<<8;}
zbber 回答时间:2017-2-23 19:40:20
设置成开漏输出,外接上拉电阻,使用时不需要切换输入输出,试试
oceane 回答时间:2018-3-12 17:05:15
学习了
123456
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版