標題: 求大佬幫忙一下關于i2c總線同時驅(qū)動2個器件的問題 [打印本頁]

作者: 小小蝦的孩子    時間: 2019-10-31 17:04
標題: 求大佬幫忙一下關于i2c總線同時驅(qū)動2個器件的問題
請問下,我用stm32同時用軟件i2c來通訊mpu6050和oled,然后單獨用的時候是可以的。合并在一起2者都不能用的,請問下這該怎么解決,是和中斷或者其他有關嗎

作者: 47okey    時間: 2019-10-31 18:14
2 個器件的I2C地址不一樣沒?
作者: 小小蝦的孩子    時間: 2019-11-1 00:20
47okey 發(fā)表于 2019-10-31 18:14
2 個器件的I2C地址不一樣沒?

不一樣的,現(xiàn)在我想知道是不是因為oled顯示的時候mpu產(chǎn)生中斷導致oled還沒運行完就跑去中斷那邊了
作者: bai_yun_123    時間: 2019-11-1 10:32
你好像和我遇到了同樣的問題,不過這個月出差出掉了,一直沒弄,OLED直接顯示時卡死,我準備這周(可能沒時間,要走親戚)或者下周弄一下這個,到時如果解決了再回來跟你說
作者: 小小蝦的孩子    時間: 2019-11-1 11:24
bai_yun_123 發(fā)表于 2019-11-1 10:32
你好像和我遇到了同樣的問題,不過這個月出差出掉了,一直沒弄,OLED直接顯示時卡死,我準備這周(可能沒時 ...

對,就是一直在那個oled中的應答出現(xiàn)問題,還請多多指教
作者: 小柿子    時間: 2019-11-1 12:00
設置兩個器件地址不一樣或者多接一個時鐘,兩個器件分別用不同的CLK驅(qū)動

作者: JiangChao2019    時間: 2019-11-1 12:06
中斷分別控制
作者: 小小蝦的孩子    時間: 2019-11-1 13:46
小柿子 發(fā)表于 2019-11-1 12:00
設置兩個器件地址不一樣或者多接一個時鐘,兩個器件分別用不同的CLK驅(qū)動

不是地址問題,我找到了原因;我用的是模擬i2c,因為mpu6050中會產(chǎn)生一個中斷,而oled顯示的時候被這個中斷所影響,導致了oled顯示不完全,求大佬有沒有好的處理關于I2C在通訊過程中產(chǎn)生中斷得怎么應付?

作者: QIXINCCY    時間: 2019-11-1 13:59
我有類似的設計經(jīng)驗,驅(qū)動OLED,然后同時控制I2C或者SPI的其他設備,現(xiàn)在能夠穩(wěn)定的工作了。分開調(diào)試,然后合并思路沒問題。分開可以用,表示模塊工作正常了。合并不能工作,傾向于認為還是有干擾。我的方法是,合并后的代碼,可以分塊注釋代碼,先注釋大段的代碼,看看到底是那里的影響,然后在調(diào)試。這個方法一樣都可以調(diào)試OK
作者: 小小蝦的孩子    時間: 2019-11-1 19:55
QIXINCCY 發(fā)表于 2019-11-1 13:59
我有類似的設計經(jīng)驗,驅(qū)動OLED,然后同時控制I2C或者SPI的其他設備,現(xiàn)在能夠穩(wěn)定的工作了。分開調(diào)試,然后 ...

我就是按照你這種方法去注釋掉一些代碼,發(fā)現(xiàn)是mpu6050產(chǎn)生的中斷 導致這樣子的,然后我想問一下關于I2C通訊過程中有中斷給打斷得怎么辦





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1