2017-04-15 27 views
0

嘿傢伙我一直在這樣的工作,像72小時直,我找不到錯誤,我正在PIC16F1719我試圖設置3外設一個ADC一個I2C協議和一個USART通信給英國電信公司但是ADC很容易,但是我對I2C很不舒服,儘管我已經多次檢查代碼,出於某種原因,當我收到ACK的一切似乎都沒問題,但是當我在傳感器(MPU6050)上演講時,什麼也沒有顯示出來,但是我上次在緩衝器上放置的值,是否有任何想法爲什麼會發生?這就像緩衝區沒有清除自己,我想我不能通過軟件清除它,謝謝。IC2從未迴應XC8

+0

這是否與編程有關,還是硬件問題? – Carcigenicate

+0

嗯,我認爲它同時適用,我有我的硬件良好的設置,我得到了上拉電阻和一切,主要是關於爲什麼緩衝區不顯示傳感器的值,但我給它的地址,就像所有東西都堆放在緩衝區中,所以沒有任何事情發生 –

回答

0

如果主站無法正確通信,i2c從站有能力鎖定總線(幾種可能的情況......) 由於2根導線是有線的,這意味着如果任何從站拉動時鐘(例如)下來,並保持這種狀態,總線被鎖定。

  • 總是首先檢查兩條線上的值(使用範圍或dvm),如果'0'表示總線鎖定。
  • 接下來測試你的i2c控制器的狀態寄存器,它可能會顯示仲裁錯誤或類似的東西。
  • 如果發現任何錯誤,請仔細閱讀i2c從站部分數據表以檢查它期望的協議讀/寫類型,並修復您的代碼。