123r
Dependencies: WNC14A2AInterface
stm-spirit1-rf-driver/source/libs/spirit1/X-NUCLEO-IDS01Ax/radio_gpio.h@7:c8e4e62c5fa7, 2019-05-02 (annotated)
- Committer:
- m_ahsan
- Date:
- Thu May 02 13:15:26 2019 +0000
- Revision:
- 7:c8e4e62c5fa7
- Parent:
- 0:2563b0415d1f
123
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JMF | 0:2563b0415d1f | 1 | /** |
JMF | 0:2563b0415d1f | 2 | ****************************************************************************** |
JMF | 0:2563b0415d1f | 3 | * @file radio_gpio.h |
JMF | 0:2563b0415d1f | 4 | * @author System Lab - NOIDA |
JMF | 0:2563b0415d1f | 5 | * @version V1.0.0 |
JMF | 0:2563b0415d1f | 6 | * @date 15-May-2014 |
JMF | 0:2563b0415d1f | 7 | * @brief This file contains all the functions prototypes for the gpio |
JMF | 0:2563b0415d1f | 8 | ****************************************************************************** |
JMF | 0:2563b0415d1f | 9 | * @attention |
JMF | 0:2563b0415d1f | 10 | * |
JMF | 0:2563b0415d1f | 11 | * <h2><center>© COPYRIGHT(c) 2014 STMicroelectronics</center></h2> |
JMF | 0:2563b0415d1f | 12 | * |
JMF | 0:2563b0415d1f | 13 | * Redistribution and use in source and binary forms, with or without modification, |
JMF | 0:2563b0415d1f | 14 | * are permitted provided that the following conditions are met: |
JMF | 0:2563b0415d1f | 15 | * 1. Redistributions of source code must retain the above copyright notice, |
JMF | 0:2563b0415d1f | 16 | * this list of conditions and the following disclaimer. |
JMF | 0:2563b0415d1f | 17 | * 2. Redistributions in binary form must reproduce the above copyright notice, |
JMF | 0:2563b0415d1f | 18 | * this list of conditions and the following disclaimer in the documentation |
JMF | 0:2563b0415d1f | 19 | * and/or other materials provided with the distribution. |
JMF | 0:2563b0415d1f | 20 | * 3. Neither the name of STMicroelectronics nor the names of its contributors |
JMF | 0:2563b0415d1f | 21 | * may be used to endorse or promote products derived from this software |
JMF | 0:2563b0415d1f | 22 | * without specific prior written permission. |
JMF | 0:2563b0415d1f | 23 | * |
JMF | 0:2563b0415d1f | 24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
JMF | 0:2563b0415d1f | 25 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
JMF | 0:2563b0415d1f | 26 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
JMF | 0:2563b0415d1f | 27 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE |
JMF | 0:2563b0415d1f | 28 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
JMF | 0:2563b0415d1f | 29 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
JMF | 0:2563b0415d1f | 30 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
JMF | 0:2563b0415d1f | 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
JMF | 0:2563b0415d1f | 32 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
JMF | 0:2563b0415d1f | 33 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
JMF | 0:2563b0415d1f | 34 | * |
JMF | 0:2563b0415d1f | 35 | ****************************************************************************** |
JMF | 0:2563b0415d1f | 36 | */ |
JMF | 0:2563b0415d1f | 37 | /* Exported types ------------------------------------------------------------*/ |
JMF | 0:2563b0415d1f | 38 | /* Exported constants --------------------------------------------------------*/ |
JMF | 0:2563b0415d1f | 39 | /* Exported macro ------------------------------------------------------------*/ |
JMF | 0:2563b0415d1f | 40 | /* Exported Variables ------------------------------------------------------------*/ |
JMF | 0:2563b0415d1f | 41 | /* Exported functions ------------------------------------------------------- */ |
JMF | 0:2563b0415d1f | 42 | |
JMF | 0:2563b0415d1f | 43 | /* Define to prevent recursive inclusion -------------------------------------*/ |
JMF | 0:2563b0415d1f | 44 | #ifndef __RADIO_GPIO_H |
JMF | 0:2563b0415d1f | 45 | #define __RADIO_GPIO_H |
JMF | 0:2563b0415d1f | 46 | #ifdef __cplusplus |
JMF | 0:2563b0415d1f | 47 | extern "C" { |
JMF | 0:2563b0415d1f | 48 | #endif |
JMF | 0:2563b0415d1f | 49 | |
JMF | 0:2563b0415d1f | 50 | /* Includes ------------------------------------------------------------------*/ |
JMF | 0:2563b0415d1f | 51 | #ifdef USE_STM32L1XX_NUCLEO |
JMF | 0:2563b0415d1f | 52 | #include "stm32l1xx_hal.h" |
JMF | 0:2563b0415d1f | 53 | #endif |
JMF | 0:2563b0415d1f | 54 | |
JMF | 0:2563b0415d1f | 55 | #ifdef USE_STM32F4XX_NUCLEO |
JMF | 0:2563b0415d1f | 56 | #include "stm32f4xx_hal.h" |
JMF | 0:2563b0415d1f | 57 | #endif |
JMF | 0:2563b0415d1f | 58 | #include "SPIRIT_Types.h" |
JMF | 0:2563b0415d1f | 59 | |
JMF | 0:2563b0415d1f | 60 | /** |
JMF | 0:2563b0415d1f | 61 | * @addtogroup BSP |
JMF | 0:2563b0415d1f | 62 | * @{ |
JMF | 0:2563b0415d1f | 63 | */ |
JMF | 0:2563b0415d1f | 64 | |
JMF | 0:2563b0415d1f | 65 | |
JMF | 0:2563b0415d1f | 66 | /* Exported types ------------------------------------------------------------*/ |
JMF | 0:2563b0415d1f | 67 | /* MCU GPIO pin working mode for GPIO */ |
JMF | 0:2563b0415d1f | 68 | typedef enum |
JMF | 0:2563b0415d1f | 69 | { |
JMF | 0:2563b0415d1f | 70 | RADIO_MODE_GPIO_IN = 0x00, /*!< Work as GPIO input */ |
JMF | 0:2563b0415d1f | 71 | RADIO_MODE_EXTI_IN, /*!< Work as EXTI */ |
JMF | 0:2563b0415d1f | 72 | RADIO_MODE_GPIO_OUT, /*!< Work as GPIO output */ |
JMF | 0:2563b0415d1f | 73 | }RadioGpioMode; |
JMF | 0:2563b0415d1f | 74 | |
JMF | 0:2563b0415d1f | 75 | /* MCU GPIO pin enumeration for GPIO */ |
JMF | 0:2563b0415d1f | 76 | typedef enum |
JMF | 0:2563b0415d1f | 77 | { |
JMF | 0:2563b0415d1f | 78 | RADIO_GPIO_0 = 0x00, /*!< GPIO_0 selected */ |
JMF | 0:2563b0415d1f | 79 | RADIO_GPIO_1 = 0x01, /*!< GPIO_1 selected */ |
JMF | 0:2563b0415d1f | 80 | RADIO_GPIO_2 = 0x02, /*!< GPIO_2 selected */ |
JMF | 0:2563b0415d1f | 81 | RADIO_GPIO_3 = 0x03, /*!< GPIO_3 selected */ |
JMF | 0:2563b0415d1f | 82 | RADIO_GPIO_SDN = 0x04, /*!< GPIO_SDN selected */ |
JMF | 0:2563b0415d1f | 83 | } |
JMF | 0:2563b0415d1f | 84 | RadioGpioPin; |
JMF | 0:2563b0415d1f | 85 | |
JMF | 0:2563b0415d1f | 86 | |
JMF | 0:2563b0415d1f | 87 | /* Exported constants --------------------------------------------------------*/ |
JMF | 0:2563b0415d1f | 88 | |
JMF | 0:2563b0415d1f | 89 | |
JMF | 0:2563b0415d1f | 90 | /* Exported macro ------------------------------------------------------------*/ |
JMF | 0:2563b0415d1f | 91 | /* MCU GPIO pin working mode for GPIO */ |
JMF | 0:2563b0415d1f | 92 | #define IS_RADIO_GPIO_MODE(MODE) (((MODE) == RADIO_MODE_GPIO_IN) || \ |
JMF | 0:2563b0415d1f | 93 | ((MODE) == RADIO_MODE_EXTI_IN) || \ |
JMF | 0:2563b0415d1f | 94 | ((MODE) == RADIO_MODE_GPIO_OUT)) |
JMF | 0:2563b0415d1f | 95 | |
JMF | 0:2563b0415d1f | 96 | /* Number of Arduino pins used for RADIO GPIO interface */ |
JMF | 0:2563b0415d1f | 97 | #define RADIO_GPIO_NUMBER ((uint8_t)5) |
JMF | 0:2563b0415d1f | 98 | |
JMF | 0:2563b0415d1f | 99 | /* MCU GPIO pin enumeration for GPIO */ |
JMF | 0:2563b0415d1f | 100 | #define IS_RADIO_GPIO_PIN(PIN) (((PIN) == RADIO_GPIO_0) || \ |
JMF | 0:2563b0415d1f | 101 | ((PIN) == RADIO_GPIO_1) || \ |
JMF | 0:2563b0415d1f | 102 | ((PIN) == RADIO_GPIO_2) || \ |
JMF | 0:2563b0415d1f | 103 | ((PIN) == RADIO_GPIO_3) || \ |
JMF | 0:2563b0415d1f | 104 | ((PIN) == RADIO_GPIO_SDN)) |
JMF | 0:2563b0415d1f | 105 | |
JMF | 0:2563b0415d1f | 106 | /* Define for RADIO board */ |
JMF | 0:2563b0415d1f | 107 | #if !defined (USE_SPIRIT1_DEFAULT) |
JMF | 0:2563b0415d1f | 108 | #define USE_SPIRIT1_DEFAULT |
JMF | 0:2563b0415d1f | 109 | #endif |
JMF | 0:2563b0415d1f | 110 | |
JMF | 0:2563b0415d1f | 111 | /* @defgroup Radio_Gpio_config_Define */ |
JMF | 0:2563b0415d1f | 112 | /*NOTE: GPIO0, GPIO1, GPIO2 of SPIRIT1 is not used in the shield*/ |
JMF | 0:2563b0415d1f | 113 | |
JMF | 0:2563b0415d1f | 114 | #define RADIO_GPIO_0_PORT GPIOC |
JMF | 0:2563b0415d1f | 115 | #define RADIO_GPIO_0_PIN GPIO_PIN_1 |
JMF | 0:2563b0415d1f | 116 | #define RADIO_GPIO_0_CLOCK_ENABLE() __GPIOC_CLK_ENABLE() |
JMF | 0:2563b0415d1f | 117 | #define RADIO_GPIO_0_CLOCK_DISABLE() __GPIOC_CLK_ENABLE() |
JMF | 0:2563b0415d1f | 118 | #define RADIO_GPIO_0_SPEED GPIO_SPEED_HIGH |
JMF | 0:2563b0415d1f | 119 | #define RADIO_GPIO_0_PUPD GPIO_NOPULL |
JMF | 0:2563b0415d1f | 120 | #define RADIO_GPIO_0_EXTI_LINE GPIO_PIN_1 |
JMF | 0:2563b0415d1f | 121 | #define RADIO_GPIO_0_EXTI_MODE GPIO_MODE_IT_FALLING |
JMF | 0:2563b0415d1f | 122 | #define RADIO_GPIO_0_EXTI_IRQN EXTI1_IRQn |
JMF | 0:2563b0415d1f | 123 | #define RADIO_GPIO_0_EXTI_PREEMPTION_PRIORITY 2 |
JMF | 0:2563b0415d1f | 124 | #define RADIO_GPIO_0_EXTI_SUB_PRIORITY 2 |
JMF | 0:2563b0415d1f | 125 | #define RADIO_GPIO_0_EXTI_IRQ_HANDLER EXTI1_IRQHandler |
JMF | 0:2563b0415d1f | 126 | |
JMF | 0:2563b0415d1f | 127 | #define RADIO_GPIO_1_PORT GPIOB |
JMF | 0:2563b0415d1f | 128 | #define RADIO_GPIO_1_PIN GPIO_PIN_0 |
JMF | 0:2563b0415d1f | 129 | #define RADIO_GPIO_1_CLOCK_ENABLE() __GPIOB_CLK_ENABLE() |
JMF | 0:2563b0415d1f | 130 | #define RADIO_GPIO_1_CLOCK_DISABLE() __GPIOB_CLK_ENABLE() |
JMF | 0:2563b0415d1f | 131 | #define RADIO_GPIO_1_SPEED GPIO_SPEED_HIGH |
JMF | 0:2563b0415d1f | 132 | #define RADIO_GPIO_1_PUPD GPIO_NOPULL |
JMF | 0:2563b0415d1f | 133 | #define RADIO_GPIO_1_EXTI_LINE GPIO_PIN_0 |
JMF | 0:2563b0415d1f | 134 | #define RADIO_GPIO_1_EXTI_MODE GPIO_MODE_IT_FALLING |
JMF | 0:2563b0415d1f | 135 | #define RADIO_GPIO_1_EXTI_IRQN EXTI0_IRQn |
JMF | 0:2563b0415d1f | 136 | #define RADIO_GPIO_1_EXTI_PREEMPTION_PRIORITY 2 |
JMF | 0:2563b0415d1f | 137 | #define RADIO_GPIO_1_EXTI_SUB_PRIORITY 2 |
JMF | 0:2563b0415d1f | 138 | #define RADIO_GPIO_1_EXTI_IRQ_HANDLER EXTI0_IRQHandler |
JMF | 0:2563b0415d1f | 139 | |
JMF | 0:2563b0415d1f | 140 | #define RADIO_GPIO_2_PORT GPIOA |
JMF | 0:2563b0415d1f | 141 | #define RADIO_GPIO_2_PIN GPIO_PIN_4 |
JMF | 0:2563b0415d1f | 142 | #define RADIO_GPIO_2_CLOCK_ENABLE() __GPIOA_CLK_ENABLE() |
JMF | 0:2563b0415d1f | 143 | #define RADIO_GPIO_2_CLOCK_DISABLE() __GPIOA_CLK_ENABLE() |
JMF | 0:2563b0415d1f | 144 | #define RADIO_GPIO_2_SPEED GPIO_SPEED_HIGH |
JMF | 0:2563b0415d1f | 145 | #define RADIO_GPIO_2_PUPD GPIO_NOPULL |
JMF | 0:2563b0415d1f | 146 | #define RADIO_GPIO_2_EXTI_LINE GPIO_PIN_4 |
JMF | 0:2563b0415d1f | 147 | #define RADIO_GPIO_2_EXTI_MODE GPIO_MODE_IT_FALLING |
JMF | 0:2563b0415d1f | 148 | #define RADIO_GPIO_2_EXTI_IRQN EXTI4_IRQn |
JMF | 0:2563b0415d1f | 149 | #define RADIO_GPIO_2_EXTI_PREEMPTION_PRIORITY 2 |
JMF | 0:2563b0415d1f | 150 | #define RADIO_GPIO_2_EXTI_SUB_PRIORITY 2 |
JMF | 0:2563b0415d1f | 151 | #define RADIO_GPIO_2_EXTI_IRQ_HANDLER EXTI4_IRQHandler |
JMF | 0:2563b0415d1f | 152 | |
JMF | 0:2563b0415d1f | 153 | |
JMF | 0:2563b0415d1f | 154 | #if defined (USE_SPIRIT1_DEFAULT) |
JMF | 0:2563b0415d1f | 155 | |
JMF | 0:2563b0415d1f | 156 | |
JMF | 0:2563b0415d1f | 157 | #define RADIO_GPIO_3_PORT GPIOC |
JMF | 0:2563b0415d1f | 158 | #define RADIO_GPIO_3_PIN GPIO_PIN_7 |
JMF | 0:2563b0415d1f | 159 | #define RADIO_GPIO_3_CLOCK_ENABLE() __GPIOC_CLK_ENABLE() |
JMF | 0:2563b0415d1f | 160 | #define RADIO_GPIO_3_CLOCK_DISABLE() __GPIOC_CLK_DISABLE() |
JMF | 0:2563b0415d1f | 161 | #define RADIO_GPIO_3_SPEED GPIO_SPEED_HIGH |
JMF | 0:2563b0415d1f | 162 | #define RADIO_GPIO_3_PUPD GPIO_NOPULL |
JMF | 0:2563b0415d1f | 163 | #define RADIO_GPIO_3_EXTI_LINE GPIO_PIN_7 |
JMF | 0:2563b0415d1f | 164 | #define RADIO_GPIO_3_EXTI_MODE GPIO_MODE_IT_FALLING |
JMF | 0:2563b0415d1f | 165 | #define RADIO_GPIO_3_EXTI_IRQN EXTI9_5_IRQn |
JMF | 0:2563b0415d1f | 166 | #define RADIO_GPIO_3_EXTI_PREEMPTION_PRIORITY 2 |
JMF | 0:2563b0415d1f | 167 | #define RADIO_GPIO_3_EXTI_SUB_PRIORITY 2 |
JMF | 0:2563b0415d1f | 168 | #define RADIO_GPIO_3_EXTI_IRQ_HANDLER EXTI9_5_IRQHandler |
JMF | 0:2563b0415d1f | 169 | |
JMF | 0:2563b0415d1f | 170 | #else |
JMF | 0:2563b0415d1f | 171 | |
JMF | 0:2563b0415d1f | 172 | #define RADIO_GPIO_3_PORT GPIOA |
JMF | 0:2563b0415d1f | 173 | #define RADIO_GPIO_3_PIN GPIO_PIN_0 |
JMF | 0:2563b0415d1f | 174 | #define RADIO_GPIO_3_CLOCK_ENABLE() __GPIOA_CLK_ENABLE() |
JMF | 0:2563b0415d1f | 175 | #define RADIO_GPIO_3_CLOCK_DISABLE() __GPIOA_CLK_DISABLE() |
JMF | 0:2563b0415d1f | 176 | #define RADIO_GPIO_3_SPEED GPIO_SPEED_HIGH |
JMF | 0:2563b0415d1f | 177 | #define RADIO_GPIO_3_PUPD GPIO_NOPULL |
JMF | 0:2563b0415d1f | 178 | #define RADIO_GPIO_3_EXTI_LINE GPIO_PIN_0 |
JMF | 0:2563b0415d1f | 179 | #define RADIO_GPIO_3_EXTI_MODE GPIO_MODE_IT_FALLING |
JMF | 0:2563b0415d1f | 180 | #define RADIO_GPIO_3_EXTI_IRQN EXTI0_IRQn |
JMF | 0:2563b0415d1f | 181 | #define RADIO_GPIO_3_EXTI_PREEMPTION_PRIORITY 2 |
JMF | 0:2563b0415d1f | 182 | #define RADIO_GPIO_3_EXTI_SUB_PRIORITY 2 |
JMF | 0:2563b0415d1f | 183 | #define RADIO_GPIO_3_EXTI_IRQ_HANDLER EXTI0_IRQHandler |
JMF | 0:2563b0415d1f | 184 | |
JMF | 0:2563b0415d1f | 185 | #endif |
JMF | 0:2563b0415d1f | 186 | |
JMF | 0:2563b0415d1f | 187 | #define RADIO_GPIO_SDN_PORT GPIOA |
JMF | 0:2563b0415d1f | 188 | #define RADIO_GPIO_SDN_PIN GPIO_PIN_10 |
JMF | 0:2563b0415d1f | 189 | #define RADIO_GPIO_SDN_CLOCK_ENABLE() __GPIOA_CLK_ENABLE() |
JMF | 0:2563b0415d1f | 190 | #define RADIO_GPIO_SDN_CLOCK_DISABLE() __GPIOA_CLK_DISABLE() |
JMF | 0:2563b0415d1f | 191 | #define RADIO_GPIO_SDN_SPEED GPIO_SPEED_HIGH |
JMF | 0:2563b0415d1f | 192 | #define RADIO_GPIO_SDN_PUPD GPIO_PULLUP |
JMF | 0:2563b0415d1f | 193 | |
JMF | 0:2563b0415d1f | 194 | |
JMF | 0:2563b0415d1f | 195 | #define RADIO_GPIO_IRQ RADIO_GPIO_3 |
JMF | 0:2563b0415d1f | 196 | #define SPIRIT_GPIO_IRQ SPIRIT_GPIO_3 |
JMF | 0:2563b0415d1f | 197 | |
JMF | 0:2563b0415d1f | 198 | /* Exported Variables ------------------------------------------------------------*/ |
JMF | 0:2563b0415d1f | 199 | |
JMF | 0:2563b0415d1f | 200 | |
JMF | 0:2563b0415d1f | 201 | /* Exported functions ------------------------------------------------------- */ |
JMF | 0:2563b0415d1f | 202 | FlagStatus RadioGpioGetLevel(RadioGpioPin xGpio); |
JMF | 0:2563b0415d1f | 203 | void RadioGpioSetLevel(RadioGpioPin xGpio, GPIO_PinState xState); |
JMF | 0:2563b0415d1f | 204 | void SdkEvalEnterShutdown(void); |
JMF | 0:2563b0415d1f | 205 | void SdkEvalExitShutdown(void); |
JMF | 0:2563b0415d1f | 206 | SpiritFlagStatus SdkEvalCheckShutdown(void); |
JMF | 0:2563b0415d1f | 207 | void RadioGpioInit(RadioGpioPin xGpio, RadioGpioMode xGpioMode); |
JMF | 0:2563b0415d1f | 208 | void RadioGpioInterruptCmd(RadioGpioPin xGpio, uint8_t nPreemption, uint8_t nSubpriority, FunctionalState xNewState); |
JMF | 0:2563b0415d1f | 209 | |
JMF | 0:2563b0415d1f | 210 | |
JMF | 0:2563b0415d1f | 211 | #ifdef __cplusplus |
JMF | 0:2563b0415d1f | 212 | } |
JMF | 0:2563b0415d1f | 213 | #endif |
JMF | 0:2563b0415d1f | 214 | #endif /*__RADIO_GPIO_H */ |
JMF | 0:2563b0415d1f | 215 | |
JMF | 0:2563b0415d1f | 216 | /** |
JMF | 0:2563b0415d1f | 217 | * @} |
JMF | 0:2563b0415d1f | 218 | */ |
JMF | 0:2563b0415d1f | 219 | |
JMF | 0:2563b0415d1f | 220 | /** |
JMF | 0:2563b0415d1f | 221 | * @} |
JMF | 0:2563b0415d1f | 222 | */ |
JMF | 0:2563b0415d1f | 223 | |
JMF | 0:2563b0415d1f | 224 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |