![]() |
發(fā)布時間: 2020-11-11 19:43
正文摘要:本帖最后由 新鄉(xiāng)家電維修 于 2020-11-12 10:18 編輯 MPL3115A2采用總線驅動,總線驅動都有識別地址BMP280壓力傳感器是11101100b MPL3115A2的資料寫B(tài)MPM3PR識別地址C0H,最后一位是讀寫位 讀BMPM3PR識 ... |
新鄉(xiāng)家電維修 發(fā)表于 2021-1-18 12:08 這都幾個月了,還沒有搞定呀 這并不是什么大問題的呀 1:先用手去按一下壓力傳感器的小孔,一般是會有變化的,再看一下里頭的不干膠有沒有壞, 如果不干膠沒有壞,用手按下,計數能變化,大概就可以認為壓力傳感器是好的 如果壓力傳感器有膠布,那就撕下來 那就是你程序的問了 2:關于讀取數據的處理方法,我上面已經說了 |
Y_G_G 發(fā)表于 2020-11-16 08:19 謝謝你,我試試,解決了就反饋到帖子里 |
新鄉(xiāng)家電維修 發(fā)表于 2020-11-15 13:37 這個傳感器的海拔數據是以有符號形式存放的,所以,嚴格來說,你是一定要對01H最高位進行檢測的,然后還要進行處理,要么是顯示負海拔,要么是不要這個數據,雖然說很少有低于海平面的時候,但數據有時候會是負數的 像你這個,我不太確定是什么原因,你可以看一下傳感器的表面,那個小圓孔是不是有膠布貼在上面,如果有,就撕下來,數據就正常了 或者是你用手按住,海拔數據也會跟著變化的,一般沒有什么東西刺到里面,它是不會壞的 |
MPL3115A2 I2C地址為0x60。 |
Y_G_G 發(fā)表于 2020-11-14 14:11 讀出的壓強633500,這個地區(qū)的海拔是72m左右,切換到海拔模式,不該出現最高位FF,不該出現海拔負數 的現象,你說的轉換正負數有一定道理,我用一個塑料袋裝著傳感器,往里面打起了,是不是氣壓高打壞了, 今天又發(fā)貨一個傳感器,貨到試試看就知道了,謝謝 |
Y_G_G 發(fā)表于 2020-11-14 11:05 我又買了一個壓力傳感器,在快遞的路上 |
新鄉(xiāng)家電維修 發(fā)表于 2020-11-13 21:46 應該是先讀取01H,02H,03H這三個地址的數據, 然后,再檢測01H最高位是0還是1, 如果是1,那就要進行補碼運算 如果是0,那就直接采用這個數據,不用進行補碼運算 |
新鄉(xiāng)家電維修 發(fā)表于 2020-11-13 21:46 不會英文,我大概機翻看了一下數據手冊 它的輸出數據是:01H,02H,03H組成的一個"有符號""的完整數據 也就是說:01H為最高位字節(jié),它這個是有符號的! 01H讀取到了FFH,那就是負數了,所有的數據要進行補碼運算才是真正的海拔高度了 你讀取出來的三個地址數據實際上是補碼,不知道你轉換過來沒有? 單獨一個這寄存器壞了,這種想法就不要去想了,要真怕這樣,就買兩個傳感器對比就知道了 |
Y_G_G 發(fā)表于 2020-11-13 08:22 00h,傳感器狀態(tài)寄存器,正常顯示 01h壓強或高度MSB,不正常 02h壓強或高度CSB,正常顯示 03h壓強或高度LSB,正常顯示 04h溫度整數MSB,正常顯示 05h溫度小數LSB,正常顯示 就中間夾著01地址寄存器不正常,不正確,氣人不? |
新鄉(xiāng)家電維修 發(fā)表于 2020-11-13 07:47 單獨一個寄存器壞了?這可能性幾乎為0,這個就不要考慮了 基本可以確定是軟件的問題,主要是看數據處理部分和傳感器本身數據的存放格式,英文資料太多了,加上不會英文 就算是中文的也是要看好長一段時間的,就不看了 |
Y_G_G 發(fā)表于 2020-11-12 17:24 地址我已經在資料里找到了解決了,讀出的高度剛開始是02(MSB)B3(CSB)90(LSB),舍去小數部分。02ddH=73.3M,也是正確的海拔,現在反復修改高位總是FF,改成讀壓強模式,高位出現66,按照16進制轉換成 十進制也不對,壓強也不對,再切換測高模式,高位總是FF, 有沒有單獨寄存器壞的可能????郁悶啊,啊,啊 |
樓上正解,應該是你數據讀取程序問題。 |
這個跟地址已經沒有什么關系了,你只要能讀取到一個,或者寫入一個,就說明從機的地址是對的了,而且讀取的的代碼也是對的 剩下的就是軟件或者硬件的問題了,要么是程序寫得不對,要么是傳感器的值原本就是這樣的 |