我有一个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