巴菲特小編討論易福門p+f傳感器接口如何調(diào)測:
系統(tǒng)簡化為單片機+傳感器
其中,p+f傳感器是指帶數(shù)字通信接口的傳感器,跟單片機的連接方式,可能是 單總線,可能是 iic,還可能是spi,或者uart,再或者是自定義的接口協(xié)議。
對于這類的單元系統(tǒng),怎么調(diào)試呢?
首先,找參考代碼。
建議去官wang找找手冊資料,有些官wang直接提供了參考代碼,可以直接下載備用。
如果官wang沒有提供代碼,可以用搜索引擎去搜代碼,也可以考慮到各大技術(shù)論壇去尋寶。
第二,找到參考代碼后,建議先通讀下p+f代碼(假設(shè)這個代碼是正確的),看下代碼的組織架構(gòu)和各功能函數(shù)的實現(xiàn)。
找到跟底層相關(guān)的函數(shù),一般就是讀數(shù)據(jù)操作,寫數(shù)據(jù)操作,讀/寫命令等。
第三,修改硬件相關(guān)的實現(xiàn)代碼,移植到自己的平臺。
的情況,實現(xiàn)了自己想要的功能了。那么,恭喜你,進展很順利。
萬一出錯了/達不到預(yù)期效果,怎么辦?怎么排查問題呢?
建議如下,
首先,保證底層的讀寫操作是正確的。
--寫操作,看下有沒有能直接觀測的。輸出高電平/低電平,輸出特定波形等
--讀操作,讀取特定寄存器的值,看下返回值是否符合預(yù)期。很多傳感器都有id值(或者特殊傳感器),讀取的話會返回固定數(shù)值。讀取這些寄存器,看下是否符合預(yù)期結(jié)果。 如果符合預(yù)期,可以初步得出底層操作是沒問題的。
其次,操作傳感器進行轉(zhuǎn)換操作,讀取轉(zhuǎn)換結(jié)果,看下是否符合預(yù)期。(會涉及到傳感器寄存器的操作,先操作哪個寄存器,后操作哪個寄存器。往寄存器里寫入哪個數(shù)值需要結(jié)合器件的使用說明書)
后,p再分享一個常見的錯誤。
很多轉(zhuǎn)換結(jié)果,需要進行數(shù)值運算和轉(zhuǎn)換。
建議在p+f代碼的開始階段,先建立一個數(shù)組,模擬轉(zhuǎn)換結(jié)果,然后進行轉(zhuǎn)換,直接查看轉(zhuǎn)換結(jié)果,看下是否滿足預(yù)期。
數(shù)值的類型轉(zhuǎn)換/除法運算等,避免這塊出問題。
一邊給客戶處理詢價,一邊寫。先寫這些吧。希望您幫助到大家