中豆学士 发表于 2023-4-2 18:09

DS18B20初始化失败,但延时是达到要求的

用的正点原子的ds18b20驱动,移植到自己的cubemx生成的stm32f103c6t6工程中,无法成功初始化ds18b20
在程序中表现为ds18b20不进行应答,超过240微秒.之后通过逻辑分析仪来检测,得到stm32这边确实延时了750微秒,达到拉低总线的要求,并放开了总线,但ds18b20始终不应答
相关硬件用在原先的正点原子开发板上正常运作,放到自己的c6t6上就是不工作
求问各位朋友,是哪里出问题了

youkebing 发表于 2023-4-2 21:27

找个是示波器看一下就行了,可能是延迟时间不够

专注于嵌入式 发表于 2023-4-3 08:11

有没有可能你的硬件有问题?

cainiao518 发表于 2023-4-3 10:13

IO口的模式需要变化为输入

中豆学士 发表于 2023-4-3 12:36

如图,已经延时750微秒,并将总线拉高,但没有回应,于是继续重复初始化操作

维修超人 发表于 2023-4-3 14:38

把逻辑分析仪的总线分析功能用起来啊,逻辑分析仪只是拿来看高低电平时间?那跟示波器有什么区别。
这是我用逻辑分析仪抓的DS18B20图,发给你参考

ayb_ice 发表于 2023-4-3 14:43

我记得标准应该是480us,

中豆学士 发表于 2023-4-3 19:36

问题已解决,换了一套基于位带操作的代码,问题应该出在不同型号stm的GPIO设计不同

Stahan 发表于 2023-4-4 23:53

是不是延迟不够的问题啊

一只眠羊 发表于 2023-4-9 18:29

你MCU是不是更换了啊?内核也变了?

她已醉 发表于 2023-4-9 18:36

位带操作不一样会出现这种问题?最后楼主咋解决的?

我吃小朋友 发表于 2023-4-9 19:23

你网上随便找个关于DS18B20的demo试试呗

月亮一键变蓝 发表于 2023-4-9 20:13

这个就复杂了,时序不对就会引起这个问题

春日负喧 发表于 2023-4-9 21:17

你开发板用的哪个?

故意相遇 发表于 2023-4-9 22:12

属实像楼主说的那样,gpio的位操作不一样会出现这种问题的

白马过平川 发表于 2023-4-9 23:16

之前我用C6T6也出现过这个问题,换成C8就没啥问题,有点意思

风凉 发表于 2023-4-10 01:18

看看你的程序,到底咋写的?

在曼谷的春 发表于 2023-4-10 06:03

你用寄存器的方式实现估计就行,但是寄存器太难写了

未说出口的像你 发表于 2023-4-10 07:16

有可能是IO的输入输出模式没切换过来吧

gaoyang9992006 发表于 2023-4-10 11:42

DS18B20初始化失败,但延时是达到要求的

不可能,绝对不可能,可能你的代码写的有问题,没有完全符合手册的时序要求。
页: [1] 2 3 4
查看完整版本: DS18B20初始化失败,但延时是达到要求的