123r

Dependencies:   WNC14A2AInterface

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?

UserRevisionLine numberNew 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>&copy; 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****/