将端口和引脚传递给 Keil uVision 中的函数

问题描述 投票:0回答:1

我想将端口和引脚传递给“Arteryf413”中的函数。

void Set_relay_state_for_non_china_mode(int writeRegister_reg_num, int readRegister_reg_num,  XXX port, uint16_t pin)
{

        if(Protocol.writeRegister[writeRegister_reg_num] == 0x08) {
            gpio_bits_set(port, pin);
            if(Test.Is_Relay_On_Off_Test && Protocol.readRegister[readRegister_reg_num] == 0x00)
                Test.Total_Relay_Test_Cnt_Must_Increase = true;
            Protocol.readRegister[readRegister_reg_num] = 0x08;
        }
        else if(Protocol.writeRegister[writeRegister_reg_num] == 0x00) {
            gpio_bits_reset(port, pin);
            if(Test.Is_Relay_On_Off_Test && Protocol.readRegister[readRegister_reg_num] == 0x08)
                Test.Total_Relay_Test_Cnt_Must_Increase = true; 
            Protocol.readRegister[readRegister_reg_num] = 0x00;
        }
        

}

地点:

    #define VALVE_OUT_3_Pin GPIO_PINS_4
    #define VALVE_OUT_3_GPIO_Port   GPIOC

我认为 pin 是一个 uint 数字,但我不知道如何将端口传递给函数。

c arm stm32
1个回答
0
投票

如果您使用 STM32 的 HAL 驱动程序,您可以使用:

GPIO_TypeDef* GPIOx

对于任何其他 ARM MCU,您可以在 CMSIS 库的 GPIO 源文件中找到等效的结构。

© www.soinside.com 2019 - 2024. All rights reserved.