当您说 pin # 时,您指的是物理芯片上的实际 pin 编号,对吗?
如果是。你可以这样做。
1-创建一个映射函数,该函数接受密码并返回相应的端口和密码
前任。
您想访问芯片上的 pin #1
SetMode( int pinNumber, char mode ) {
typedef struct {
int pin;
int port;
}pinValues;
pinValues pinStruct;
mapPin( &pinStruct, pinNumber ); // this resolves the pin # on the chip to a port
// and pin.
GPIO_init( pinStruct, mode ); // this initializes the pin;
}
mapPin 函数应该非常简单,只需创建一个包含引脚号的数组
前任。
说芯片只有4个引脚
常量字符 GPIO_pin[5] = { 1,2,3,4 };
并为每个引脚对应的端口和引脚创建一个结构#
前任
typedef struct {
int pin;
int port;
}pinPort;
pinPort pinPortStruct[5] = { (PORTA,0), (PORTA,1), (PORTB,1), (PORTB,1) };
所以引脚 #1 对应于 PORTA 0
所以你所做的只是搜索 GPIO_pin 然后返回对应于该索引的结构
for( int i = 0;i <4; i++)
{
if( pin == GPIO_pin[i] )
return pinPortStruct[i];
}
我希望这是你需要的。