K64 API入门
一、GPIO
1.初始化结构体
1 typedef struct GpioInputPin { 2 #if FSL_FEATURE_PORT_HAS_PULL_ENABLE 3 bool isPullEnable; /*!< Enable or disable pull. */ 4 #endif 5 #if FSL_FEATURE_PORT_HAS_PULL_SELECTION 6 port_pull_t pullSelect; /*!< Select internal pull(up/down) resistor.*/ 7 #endif 8 #if FSL_FEATURE_PORT_HAS_PASSIVE_FILTER 9 bool isPassiveFilterEnabled; /*!< Enable or disable passive filter.*/ 10 #endif 11 #if FSL_FEATURE_PORT_HAS_DIGITAL_FILTER 12 /* Digital filter clock source and width should be pre-configured using the port HAL.*/ 13 bool isDigitalFilterEnabled; /*!< Enable or disable digital filter.*/ 14 #endif 15 #if FSL_FEATURE_GPIO_HAS_INTERRUPT_VECTOR 16 port_interrupt_config_t interrupt; /*!< Select interrupt/DMA request.*/ 17 #endif 18 } gpio_input_pin_t; 19 20 21 typedef struct GpioOutputPin { 22 uint32_t outputLogic; /*!< Set default output logic.*/ 23 #if FSL_FEATURE_PORT_HAS_SLEW_RATE 24 port_slew_rate_t slewRate; /*! Select fast/slow slew rate.*/ 25 #endif 26 #if FSL_FEATURE_PORT_HAS_DRIVE_STRENGTH 27 port_drive_strength_t driveStrength;/*!< Select low/high drive strength.*/ 28 #endif 29 #if FSL_FEATURE_PORT_HAS_OPEN_DRAIN 30 bool isOpenDrainEnabled; /*!< Enable or disable open drain.*/ 31 #endif 32 } gpio_output_pin_t; 33 34 35 typedef struct GpioInputPinUserConfig { 36 uint32_t pinName; /*!< Virtual pin name from enumeration defined by the user.*/ 37 gpio_input_pin_t config; /*!< Input pin configuration structure.*/ 38 } gpio_input_pin_user_config_t; 39 40 41 typedef struct GpioOutputPinUserConfig { 42 uint32_t pinName; /*!< Virtual pin name from enumeration defined by the user.*/ 43 gpio_output_pin_t config;/*!< Input pin configuration structure.*/ 44 } gpio_output_pin_user_config_t;
2. 常用API
1 //初始化 2 void GPIO_DRV_Init(const gpio_input_pin_user_config_t * inputPins, 3 const gpio_output_pin_user_config_t * outputPins); 4 void GPIO_DRV_InputPinInit(const gpio_input_pin_user_config_t *inputPin); 5 void GPIO_DRV_OutputPinInit(const gpio_output_pin_user_config_t *outputPin); 6 7 //Pin Direction即输入、输出(kGpioDigitalInput/kGpioDigitalOutput) 8 gpio_pin_direction_t GPIO_DRV_GetPinDir(uint32_t pinName); 9 void GPIO_DRV_SetPinDir(uint32_t pinName, gpio_pin_direction_t direction); 10 11 // GPIO读写、置1清0、翻转 12 uint32_t GPIO_DRV_ReadPinInput(uint32_t pinName); 13 void GPIO_DRV_WritePinOutput(uint32_t pinName, uint32_t output); 14 void GPIO_DRV_SetPinOutput(uint32_t pinName); 15 void GPIO_DRV_ClearPinOutput(uint32_t pinName); 16 void GPIO_DRV_TogglePinOutput(uint32_t pinName); 17 18 //读取/清除单个管脚中断状态标志 19 bool GPIO_DRV_IsPinIntPending(uint32_t pinName); 20 void GPIO_DRV_ClearPinIntFlag(uint32_t pinName);
持续更新中......