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

基于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扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版