完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
|
相关推荐
47个回答
|
|
|
用库函数延时比较长,至少在L152上就有点长了,用开漏的目的就是为了省时间,省去端口切换的时间,时序必须严格按18B20说明书,再就是引线电容,通过示波器观察在读数据的一刻,如果是1,波形必须升到1,
升不到1可适当减小上拉电阻,我接了一个10米长的引线,上拉电阻用的是1K。必须保证15us内数据线能拉到1. |
|
|
|
|
asd009 发表于 2018-8-19 16:50 谢谢。这个问题已经解决了,其实我也不知道为什么,是端口配置问题,我直接配置寄存器就可以读到数据了,但是用库函数来设置端口的话就不行,不管哪种输入方式。这个问题等我调试好整个东西,再来研究下库函数。 |
|
|
|
|
|
嗯,谢谢!问题已经解决了,是端口配置问题,我换成直接写寄存器来配置端口就没问题了,本来是用库函数来配置的,还不知是什么原因,换成寄存器就可以了.......等调试整个东西再来研究库函数 |
|
|
|
|
|
本帖最后由 依然自我 于 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;} |
|
|
|
|
|
设置成开漏输出,外接上拉电阻,使用时不需要切换输入输出,试试
|
|
|
|
|
|
学习了
|
|
|
|
|
|
学习了
|
|
|
|
|
|
本帖最后由 zml515192147 于 2019-10-16 09:01 编辑
DS18B20 编程还是比较 麻烦的,延时函数 调用 太多,影响主程序的运行 得用定时器 来调度 程序来实现延时,详细见 见附件
21STM32F10x_DS18BD20源程序说明.zip
(97.94 KB, 下载次数: 2
)
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2810 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2420 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2288 浏览 0 评论
2404 浏览 1 评论
1643 浏览 1 评论
浏览过的版块 |
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 04:56 , Processed in 1.057113 second(s), Total 90, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1127