Fork of my MQTTGateway

Dependencies:   mbed-http

Committer:
vpcola
Date:
Sat Apr 08 14:45:51 2017 +0000
Revision:
0:f1d3878b8dd9
Initial commit

Who changed what in which revision?

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