我有一個LPC板,我需要遍歷引腳,並檢查它們是否高或低,當我連接它們與一些LED /電線。我發現問題是引腳不是按特定順序排列的。我有20個輸入GPIO和20個輸出。C GPIO for循環
我已經將引腳定義爲宏表達式例如。 #define GPIO1 0,1 #define GPIO2 1,19
然後我將它們存儲在一個數組中。 gpio_outputs[] = {GPIO1, etc};
但如果我試圖爲這個數組的循環做它告訴我:「太少參數」
for (i=0;i<sizeof(gpio_outputs);i++){
// Chip_GPIO_SetPinDIROutput(LPC_GPIO_PORT, gpio_outputs[i]);
//}
原型爲Chip_GPIO_SetPinDIROutput
是:
Chip_GPIO_SetPinDIROutput(LPC_GPIO_PORT, PIN_INDEX, PIN_NUMBER);
現在,從我一直在讀,宏表達式不適用於此。所以我的問題是如何迭代每個GPIO而不必手動完成所有40個GPIO?
定義一個具有正確引腳順序的數組,然後迭代它。 –
所有的20個引腳是否在同一個實際的端口?你的宏中有兩個數字是什麼?不,宏不是這樣工作的,你將不得不擁有一張擁有你需要的實際數據的表。 「引腳索引」和「引腳編號」之間有什麼區別? – unwind
有兩行。每一行都有一個索引。例如。左手排索引0,右手排1.這實際上並非如此,而是更容易解釋。實際的GPIO數字遍佈整個地方。例如。我有一個1,9針腳0,2。 https://cdn-shop.adafruit.com/1200x900/1342-00.jpg – Filip