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