Freescale K64 API入门简述

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;
View Code

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);
View Code

持续更新中......

猜你喜欢

转载自www.cnblogs.com/Tuple-Joe/p/10292210.html