2017-05-04 32 views
3

我試圖移植一些代碼到AndroidThings。目前它使用「GPIO 3(SCL)」作爲Raspberry Pi上的引腳。 https://github.com/mattdh666/rpi-led-matrix-panel/blob/master/RgbMatrix.h#L206移植AndroidThings的外設 - 引腳選擇

但是在AndroidThings相同的引腳是「I2C1(SCL)」,所以我不能用peripheralManService.openGpio("BCM3") see here for Pinout diagram

try { 
     gpioSerialClock = service.openGpio("BCM3"); // Throws Caused by: android.os.ServiceSpecificException: Unknown I/O name BCM3 
    } catch (IOException e) { 
     throw new IllegalStateException(e); 
    } 

我應該將我的線使用的樹莓派另一個引腳被標記引用它爲GPIO?是否有任何後果:/我的外設需要使用BCM3,因爲它是串行時鐘

enter image description here

如果需要選擇的引腳的一些更直觀的解釋:

enter image description here

enter image description here

回答

1

您正在移植的代碼假定所有連接的引腳都是純GPIO引腳。它顯式驅動每個引腳的所有引腳轉換。在這方面,您只需要13個可用的GPIO端口即可連接到RGB矩陣。您只需對接線進行適當調整即可將示例中的針腳號與您選擇的端口相匹配。

這不是處理來自Android Things的通信(大量往返和I/O循環)的最有效方式,但它應該作爲一個開始。理想情況下,您可以從SPI或I2C總線驅動時鐘串行數據(如果協議匹配),以降低開銷並提高傳輸速率。