![]() |
發布時間: 2021-2-9 18:30
正文摘要:幫我看看這個CRC校驗 寫對沒有 為什么會有 150度 感謝大家了 #include"temp.h" uchar scratbuf[9]; //存從18B20高速緩存中讀取的9B數據 uchar code crc_tab[256]={ 0, 94,188,226, 97 ... |
以上解釋基于51單片機12MHz晶振環境 |
這個程序從表面看沒有什么問題,仔細推敲問題出在Ds18b20Init函數。 由于18b20對時序非常敏感。主機首先發出一個480-960微秒的低電平脈沖,然后釋放總線變為高電平,并在隨后的480微秒時間內對總線進行檢測,如果有低電平出現說明總線上有器件已做出應答。若無低電平出現一直都是高電平說明總線上無器件應答。 修改如下:
|