HelloWorld_IDS01A4 mbed application for Spirit1 P2P demo.

Dependencies:   mbed

Fork of HelloWorld_IDS01A5_Program by rosarium pila

mbed 2.0 (a.k.a classic) HelloWorld example for Spirit1 to transfer data from one node to another.
To send the predefined data packet from the sender to the receiver, user needs to press User Button on the board. The LED on the receiver expansion board will toggle on reception of data successfully.
Data packets sent and received can be seen on USB serial terminal.

EVALUATION BOARDS RF FREQUENCY DESCRIPTION :
X-NUCLEO-IDS01A4 868 MHz 868 MHz RF expansion board based on SPIRIT1

Committer:
rosarium
Date:
Thu May 25 16:38:55 2017 +0000
Revision:
0:2ddc0583bcec
First draft version of HelloWorld_IDS01A5

Who changed what in which revision?

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