|
發布時間: 2022-11-27 20:55
正文摘要:用STM32F103C8T6最小系統板驅動DS18B20,這里的應答一直返回值為1,檢測不到ds18b20,代碼檢查了幾遍沒有問題,有沒有大佬解答一下 |
| 這種問題,如果不是硬件原因,一般都時時序問題,所以最好的辦法是,掛個示波器,查看時序,哪兒不對修改哪 |
| 現在,很多 DS8B20并不是 DS18B20,時序是不一樣的 |
fhff 發表于 2022-11-28 20:24 原子的例程照著用是絕對能用的,除了沒有單總線上掛載多個設備的功能。換個傳感器試試,好好檢查一下所有有可能疏忽的地方。 |
dasSpieler 發表于 2022-11-28 00:39 延時用的正點原子代碼,應該也沒問題 |
dasSpieler 發表于 2022-11-28 00:39 連接沒有問題,網上的代碼都試過了,大同小異,但都無法完成讓初始化返回值為0 |
| 用示波器測試一下延時電路準不準,然后再調試程序。 |
| 看一下延時是否正確。 |
|
代碼看上去是對的。考慮一下硬件連接是否有問題,傳感器io是否正確上拉,或更換傳感器(ds18b20應該不太容易壞,除非正負極接反); 單片機io初始化是否正確,ds18b20在發送命令前是否正確reset。這個東西用起來沒啥難度,網上一堆例程可以參考。 |