标题: STM32+DS18B20 大佬帮我看看,为什么OLED屏幕上显示是00 [打印本页]

作者: 世间美好    时间: 2023-12-7 14:17
标题: STM32+DS18B20 大佬帮我看看,为什么OLED屏幕上显示是00
温度传感器是DS18B20,单片机是STM32F103C8T6。OLED屏是0.96,4引脚。

bishe.7z

196.71 KB, 下载次数: 9


作者: 夏至浅浅落    时间: 2023-12-7 15:10
Main函数第15行 “u8 DS18B20_Init();” 为什么要加个u8,等于你在主函数声明了一个DS18B20_Init()函数,但没有引用到ds18b20.c文件里面的DS18B20_Init()初始化函数,那没反应是当然的了
作者: 世间美好    时间: 2023-12-7 16:13
夏至浅浅落 发表于 2023-12-7 15:10
Main函数第15行 “u8 DS18B20_Init();” 为什么要加个u8,等于你在主函数声明了一个DS18B20_Init()函数,但 ...

大佬,还是没反应。OLED屏幕上还是显示00。
作者: 夏至浅浅落    时间: 2023-12-7 21:21
世间美好 发表于 2023-12-7 16:13
大佬,还是没反应。OLED屏幕上还是显示00。

那就一步一步查,比如先确认有没有识别18B20。例如将DS18B20_Check()的返回值通过oled显示出来看看有没有检测到18b20的存在后再继续分析
作者: jared1716    时间: 2023-12-7 22:20
夏至浅浅落 发表于 2023-12-7 21:21
那就一步一步查,比如先确认有没有识别18B20。例如将DS18B20_Check()的返回值通过oled显示出来看看有没有 ...

18b20单线数据传输对数据BIT脉宽度要求比较严格,可以先用示波器查看下数据BIT电平宽度是否满足要求。
作者: ppcbug    时间: 2023-12-8 10:59
DS18B20 真心不好用, 谁用谁知道。
有几个注意事项, 一个个查,总能解决的。
1.  1us 延时的 误差不要太大
2.  硬件光靠MCU上拉 是不行的
3.  GPIO 永远不要设置为 PP 模式
4.  读写时 关中断!!!
5. 读写完成 第一时间释放总线

调试时, 先判断 DS18B20 存在是否 正确 。 就是 有个 低电平回应 。 如不存在 , 检查硬件。
作者: 新乡家电维修    时间: 2023-12-8 16:38
18B20还是很好用的,主要是时序延时,有个逻辑分析仪就很好解决,网上买好像30多元吧,分析程序时序对写程序很有帮助的,




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1