Fork of my original MQTTGateway

Dependencies:   mbed-http

Committer:
vpcola
Date:
Sat Apr 08 14:43:14 2017 +0000
Revision:
0:a1734fe1ec4b
Initial commit

Who changed what in which revision?

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