我想将端口和引脚传递给“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 数字,但我不知道如何将端口传递给函数。
如果您使用 STM32 的 HAL 驱动程序,您可以使用:
GPIO_TypeDef* GPIOx
对于任何其他 ARM MCU,您可以在 CMSIS 库的 GPIO 源文件中找到等效的结构。