想要把GPIO端口和引脚号作为参数传给结构体,可以这样写?

2019-12-13 18:22发布

结构体声明:
typedef struct
{
        GPIO_TypeDef* GPIOx;
        uint16_t GPIO_Pin;
}GPIO_STATUS;

typedef struct
{
        GPIO_TypeDef* GPIOx;
        uint16_t GPIO_Pin;
}GPIO_CHECK;

typedef struct
{
        GPIO_TypeDef* GPIOx;
        uint16_t GPIO_Pin;
}GPIO_CONTROL;

typedef struct _DEVICE_PROPERTY
{
        GPIO_STATUS* GPIO_Status;
        GPIO_CHECK* GPIO_Check;
        GPIO_CONTROL* GPIO_Control;
       
        UINT8 Device_Status;
               
}__attribute__((packed)) DEVICE_PROPERTY;

创建设备并初始化GPIO配置
DEVICE_PROPERTY Main_Light ;
Device_GPIO_Default(&Main_Light,GPIOC,GPIO_Pin_7,GPIOC,GPIO_Pin_6,GPIOC,GPIO_Pin_1);

void Device_GPIO_Default(DEVICE_PROPERTY* device,
                                  GPIO_TypeDef* GPIOX,uint16_t GPIO_PinX,
                                  GPIO_TypeDef* GPIOY,uint16_t GPIO_PinY,
                                  GPIO_TypeDef* GPIOZ,uint16_t GPIO_PinZ )
{
        device->GPIO_Status->GPIOx = GPIOX;
        device->GPIO_Status->GPIO_Pin = GPIO_PinX;       

        device->GPIO_Check->GPIOx = GPIOY;
        device->GPIO_Check->GPIO_Pin = GPIO_PinY;       

        device->GPIO_Control->GPIOx = GPIOZ;
        device->GPIO_Control->GPIO_Pin = GPIO_PinZ;       
}


可以这样写么?很久没写了,希望大神指点,谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。