DS18B20初始化失败,但延时是达到要求的
用的正点原子的ds18b20驱动,移植到自己的cubemx生成的stm32f103c6t6工程中,无法成功初始化ds18b20在程序中表现为ds18b20不进行应答,超过240微秒.之后通过逻辑分析仪来检测,得到stm32这边确实延时了750微秒,达到拉低总线的要求,并放开了总线,但ds18b20始终不应答
相关硬件用在原先的正点原子开发板上正常运作,放到自己的c6t6上就是不工作
求问各位朋友,是哪里出问题了
找个是示波器看一下就行了,可能是延迟时间不够 有没有可能你的硬件有问题? IO口的模式需要变化为输入 如图,已经延时750微秒,并将总线拉高,但没有回应,于是继续重复初始化操作
把逻辑分析仪的总线分析功能用起来啊,逻辑分析仪只是拿来看高低电平时间?那跟示波器有什么区别。
这是我用逻辑分析仪抓的DS18B20图,发给你参考
我记得标准应该是480us, 问题已解决,换了一套基于位带操作的代码,问题应该出在不同型号stm的GPIO设计不同 是不是延迟不够的问题啊 你MCU是不是更换了啊?内核也变了? 位带操作不一样会出现这种问题?最后楼主咋解决的?
你网上随便找个关于DS18B20的demo试试呗
这个就复杂了,时序不对就会引起这个问题
你开发板用的哪个?
属实像楼主说的那样,gpio的位操作不一样会出现这种问题的
之前我用C6T6也出现过这个问题,换成C8就没啥问题,有点意思
看看你的程序,到底咋写的?
你用寄存器的方式实现估计就行,但是寄存器太难写了
有可能是IO的输入输出模式没切换过来吧