如圖片及視頻, 我使用51單片機模擬I2C協(xié)議和設(shè)備進行通訊, 讀出來的數(shù)據(jù)缺少前幾位, 只讀到后幾位的數(shù)據(jù)
MCU IO口和從設(shè)備之間用杜邦線連接
從設(shè)備的排針沒有嚴絲合縫的完全接觸, 留有一定縫隙
第一張圖片里顯示的14751(0x399F) 是我想要的數(shù)據(jù), 而第二張, 第三張是我用手晃動排針后讀出的數(shù)據(jù)
第二張沒讀到數(shù)據(jù)(數(shù)據(jù)為0)
第三張的數(shù)據(jù)是我期望值的后兩位159(0x9F)
需要說明的是, 我用手將排針和從設(shè)備的觸點用力按在一起, 確保物理接觸的時候, 讀出來的數(shù)據(jù)是159(0x9F)
只有排針和觸點之間處于一個微妙的角度(介于不接觸和接觸之間)的時候讀出來的數(shù)據(jù)才是14751(0x399F)
我自己也做過幾個測試, 結(jié)果是我用力把排針和觸點按在一起的時候, 單片機讀不到0x399F的前兩位, 只能讀出后兩位0x9F
只有當我輕微晃動排針的時候才有可能得到我想要的數(shù)據(jù)(要把握晃動的角度, 還得看運氣)
我的疑問是:
1. 既然可以斷定是排針接觸不良導(dǎo)致的問題, 那么為什么當我按緊排針確保接觸的時候不能得到我想要的數(shù)據(jù)呢?
2. 這是軟件還是硬件的問題?
a. 如果是硬件的問題, 可以使用軟件的方法規(guī)避嗎?
b. 可以通過不使用排針, 把MCU和設(shè)備焊在PCB上來解決嗎?
c. 如果是軟件的問題, 問題大概出在哪里?
從設(shè)備的接口:
我使用的排針
視頻:
示例.zip
(1.09 MB, 下載次數(shù): 3)
2021-3-27 21:49 上傳
點擊文件名下載附件
懇請各位大佬解答, 感激不盡!!
|