123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- #ifndef __COM_GPIO_H__
- #define __COM_GPIO_H__
- #ifndef uint8_t
- #define uint8_t unsigned char
- #endif
- #ifndef uint16_t
- #define uint16_t unsigned short
- #endif
- #ifndef uint32_t
- #define uint32_t unsigned long
- #endif
- #ifndef uint64_t
- #define uint64_t unsigned long long int
- #endif
- /* Exported types ------------------------------------------------------------*/
- /** @defgroup GPIO_Exported_Types GPIO Exported Types
- * @{
- */
- /**
- * @brief GPIO Init structure definition
- */
- typedef struct
- {
- uint32_t Pin; /*!< Specifies the GPIO pins to be configured.
- This parameter can be any value of @ref GPIO_pins_define */
- uint32_t Mode; /*!< Specifies the operating mode for the selected pins.
- This parameter can be a value of @ref GPIO_mode_define */
- uint32_t Pull; /*!< Specifies the Pull-up or Pull-Down activation for the selected pins.
- This parameter can be a value of @ref GPIO_pull_define */
- uint32_t Speed; /*!< Specifies the speed for the selected pins.
- This parameter can be a value of @ref GPIO_speed_define */
- uint32_t Alternate; /*!< Peripheral to be connected to the selected pins.
- This parameter can be a value of @ref GPIO_Alternate_function_selection */
- }GPIO_InitTypeDef;
- /**
- * @brief GPIO Bit SET and Bit RESET enumeration
- */
- typedef enum
- {
- GPIO_PIN_RESET = 0,
- GPIO_PIN_SET
- }GPIO_PinState;
- /**
- * @}
- */
- /* Exported constants --------------------------------------------------------*/
- /** @defgroup GPIO_Exported_Constants GPIO Exported Constants
- * @{
- */
- /** @defgroup GPIO_pins_define GPIO pins define
- * @{
- */
- #define GPIO_PIN_0 ((uint16_t)0x0001) /* Pin 0 selected */
- #define GPIO_PIN_1 ((uint16_t)0x0002) /* Pin 1 selected */
- #define GPIO_PIN_2 ((uint16_t)0x0004) /* Pin 2 selected */
- #define GPIO_PIN_3 ((uint16_t)0x0008) /* Pin 3 selected */
- #define GPIO_PIN_4 ((uint16_t)0x0010) /* Pin 4 selected */
- #define GPIO_PIN_5 ((uint16_t)0x0020) /* Pin 5 selected */
- #define GPIO_PIN_6 ((uint16_t)0x0040) /* Pin 6 selected */
- #define GPIO_PIN_7 ((uint16_t)0x0080) /* Pin 7 selected */
- #define GPIO_PIN_8 ((uint16_t)0x0100) /* Pin 8 selected */
- #define GPIO_PIN_9 ((uint16_t)0x0200) /* Pin 9 selected */
- #define GPIO_PIN_10 ((uint16_t)0x0400) /* Pin 10 selected */
- #define GPIO_PIN_11 ((uint16_t)0x0800) /* Pin 11 selected */
- #define GPIO_PIN_12 ((uint16_t)0x1000) /* Pin 12 selected */
- #define GPIO_PIN_13 ((uint16_t)0x2000) /* Pin 13 selected */
- #define GPIO_PIN_14 ((uint16_t)0x4000) /* Pin 14 selected */
- #define GPIO_PIN_15 ((uint16_t)0x8000) /* Pin 15 selected */
- #define GPIO_PIN_All ((uint16_t)0xFFFF) /* All pins selected */
- #define GPIO_PIN_MASK 0x0000FFFFU /* PIN mask for assert test */
- /**
- * @}
- */
- /** @defgroup GPIO_mode_define GPIO mode define
- * @brief GPIO Configuration Mode
- * Elements values convention: 0xX0yz00YZ
- * - X : GPIO mode or EXTI Mode
- * - y : External IT or Event trigger detection
- * - z : IO configuration on External IT or Event
- * - Y : Output type (Push Pull or Open Drain)
- * - Z : IO Direction mode (Input, Output, Alternate or Analog)
- * @{
- */
- #define GPIO_MODE_INPUT 0x00000000U /*!< Input Floating Mode */
- #define GPIO_MODE_OUTPUT_PP 0x00000001U /*!< Output Push Pull Mode */
- #define GPIO_MODE_OUTPUT_OD 0x00000011U /*!< Output Open Drain Mode */
- #define GPIO_MODE_AF_PP 0x00000002U /*!< Alternate Function Push Pull Mode */
- #define GPIO_MODE_AF_OD 0x00000012U /*!< Alternate Function Open Drain Mode */
- #define GPIO_MODE_ANALOG 0x00000003U /*!< Analog Mode */
-
- #define GPIO_MODE_IT_RISING 0x10110000U /*!< External Interrupt Mode with Rising edge trigger detection */
- #define GPIO_MODE_IT_FALLING 0x10210000U /*!< External Interrupt Mode with Falling edge trigger detection */
- #define GPIO_MODE_IT_RISING_FALLING 0x10310000U /*!< External Interrupt Mode with Rising/Falling edge trigger detection */
-
- #define GPIO_MODE_EVT_RISING 0x10120000U /*!< External Event Mode with Rising edge trigger detection */
- #define GPIO_MODE_EVT_FALLING 0x10220000U /*!< External Event Mode with Falling edge trigger detection */
- #define GPIO_MODE_EVT_RISING_FALLING 0x10320000U /*!< External Event Mode with Rising/Falling edge trigger detection */
- /**
- * @}
- */
- /** @defgroup GPIO_speed_define GPIO speed define
- * @brief GPIO Output Maximum frequency
- * @{
- */
- #define GPIO_SPEED_FREQ_LOW 0x00000000U /*!< IO works at 2 MHz, please refer to the product datasheet */
- #define GPIO_SPEED_FREQ_MEDIUM 0x00000001U /*!< range 12,5 MHz to 50 MHz, please refer to the product datasheet */
- #define GPIO_SPEED_FREQ_HIGH 0x00000002U /*!< range 25 MHz to 100 MHz, please refer to the product datasheet */
- #define GPIO_SPEED_FREQ_VERY_HIGH 0x00000003U /*!< range 50 MHz to 200 MHz, please refer to the product datasheet */
- /**
- * @}
- */
- /** @defgroup GPIO_pull_define GPIO pull define
- * @brief GPIO Pull-Up or Pull-Down Activation
- * @{
- */
- #define GPIO_NOPULL 0x00000000U /*!< No Pull-up or Pull-down activation */
- #define GPIO_PULLUP 0x00000001U /*!< Pull-up activation */
- #define GPIO_PULLDOWN 0x00000002U /*!< Pull-down activation */
- #endif /* __COM_GPIO_H__ */
|