hc32f030读取DS18B20实在搞不定了。哪位有代码参考下呀
hc32f030读取DS18B20实在搞不定了。哪位有代码参考下呀 ,,我这HC005读取正常,030读取异常,有搞过030读取18B20的支援下呀 用示波器看时序,不过最好用逻辑分析仪 自带的单总线来看时序 就能找到问题了 本帖最后由 亚瑟 于 2024-6-28 18:51 编辑这有个写好的库,改一下宏定义就能用https://bbs.21ic.com/icview-3383896-1-1.html 选择DMA中断类型为:数据块传输完成中断 试试逻辑分析仪试试呗,也许就可以了 这种不就是一个时序吗?你对照时序试试 网上有很多关于DS18B20的例程的,然后你移植过来,调整一下时序就好了 这种参考也没多大意义,因为你的MCU和别人的MCU也不一样 其实就是时序不对,跟你主频啥的有关系 你用delay试试吧,多调一下时序试试 我觉得你用逻辑分析仪就行,这种很简单,对照手册来调试就行 把你代码发出来看看,并且把你时序发出来看看 一般单总线的话,你就直接调整时序不就行了吗 代码都是通用的啦,你030和050的主频估计不一样,你配置主频一样试试,或者等比例的调整delay试试 网上代码太多了 HC005读取正常,030读取异常 由于DS18B20使用1-Wire(单总线)通信协议,需要精确控制时序。 DS18B20使用单总线协议进行通信,这意味着所有的数据和命令都是通过一条线进行传输的。因此,精确的时序控制是非常重要的。 编写函数来执行复位脉冲、写位、读位等操作。
发送正确的ROM指令和功能指令给DS18B20,例如跳过ROM指令(0xCC)和转换温度指令(0x44)。 DS18B20对时序有严格要求,需要使用定时器延时获得微秒级的延时函数。
在写操作中,总线拉低的时间和释放总线的时间需要精确控制。