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 platform/stm32nucleo-spirit1/platform-conf.h
rosarium 0:2ddc0583bcec 4 * @author System LAB
rosarium 0:2ddc0583bcec 5 * @version V1.0.0
rosarium 0:2ddc0583bcec 6 * @date 17-May-2015
rosarium 0:2ddc0583bcec 7 * @brief Configuration parameters
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 /*---------------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 38 /**
rosarium 0:2ddc0583bcec 39 * \addtogroup stm32nucleo-spirit1
rosarium 0:2ddc0583bcec 40 * @{
rosarium 0:2ddc0583bcec 41 *
rosarium 0:2ddc0583bcec 42 * \defgroup stm32nucleo-spirit1-peripherals User Button on STM32 Nucleo
rosarium 0:2ddc0583bcec 43 *
rosarium 0:2ddc0583bcec 44 * Defines some of the platforms capabilities
rosarium 0:2ddc0583bcec 45 * @{
rosarium 0:2ddc0583bcec 46 *
rosarium 0:2ddc0583bcec 47 * \file
rosarium 0:2ddc0583bcec 48 * Header file for the stm32nucleo-spirit1 platform configuration
rosarium 0:2ddc0583bcec 49 */
rosarium 0:2ddc0583bcec 50 /*---------------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 51 #ifndef __PLATFORM_CONF_H__
rosarium 0:2ddc0583bcec 52 #define __PLATFORM_CONF_H__
rosarium 0:2ddc0583bcec 53 /*---------------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 54 #ifdef USE_STM32L1XX_NUCLEO
rosarium 0:2ddc0583bcec 55 #include <inttypes.h>
rosarium 0:2ddc0583bcec 56 #include <string.h>
rosarium 0:2ddc0583bcec 57 /*---------------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 58 #define PLATFORM_HAS_LEDS 1
rosarium 0:2ddc0583bcec 59 #define PLATFORM_HAS_BUTTON 1
rosarium 0:2ddc0583bcec 60 #define PLATFORM_HAS_RADIO 1
rosarium 0:2ddc0583bcec 61
rosarium 0:2ddc0583bcec 62 #define LEDS_GREEN 1 /*Nucleo LED*/
rosarium 0:2ddc0583bcec 63 #define LEDS_RED 2 /*SPIRIT1 LED*/
rosarium 0:2ddc0583bcec 64
rosarium 0:2ddc0583bcec 65 #ifdef COMPILE_SENSORS
rosarium 0:2ddc0583bcec 66 #define LEDS_CONF_ALL 1 /*Can't use SPIRIT1 LED in this case*/
rosarium 0:2ddc0583bcec 67 #else
rosarium 0:2ddc0583bcec 68 #define LEDS_CONF_ALL 3 /*No sensors -> we can use SPIRIT1 LED in this case*/
rosarium 0:2ddc0583bcec 69 #endif /*COMPILE_SENSORS*/
rosarium 0:2ddc0583bcec 70 /*---------------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 71 #define F_CPU 32000000ul
rosarium 0:2ddc0583bcec 72 #define RTIMER_ARCH_SECOND 32768
rosarium 0:2ddc0583bcec 73 #define PRESCALER ((F_CPU / (RTIMER_ARCH_SECOND*2)))
rosarium 0:2ddc0583bcec 74
rosarium 0:2ddc0583bcec 75 #define UART1_CONF_TX_WITH_INTERRUPT 0
rosarium 0:2ddc0583bcec 76 #define WITH_SERIAL_LINE_INPUT 1
rosarium 0:2ddc0583bcec 77 #define TELNETD_CONF_NUMLINES 6
rosarium 0:2ddc0583bcec 78 #define NETSTACK_CONF_RADIO spirit_radio_driver
rosarium 0:2ddc0583bcec 79 #define NETSTACK_RADIO_MAX_PAYLOAD_LEN 96 /* spirit1-config.h */
rosarium 0:2ddc0583bcec 80
rosarium 0:2ddc0583bcec 81 #if WITH_IP64
rosarium 0:2ddc0583bcec 82 #include "ip64-conf.h"
rosarium 0:2ddc0583bcec 83 #define WITH_SLIP 1
rosarium 0:2ddc0583bcec 84 #ifndef UIP_FALLBACK_INTERFACE
rosarium 0:2ddc0583bcec 85 #define UIP_FALLBACK_INTERFACE ip64_uip_fallback_interface
rosarium 0:2ddc0583bcec 86 #endif
rosarium 0:2ddc0583bcec 87 #endif /* WITH_IP64 */
rosarium 0:2ddc0583bcec 88
rosarium 0:2ddc0583bcec 89 /*---------------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 90 /* define ticks/second for slow and fast clocks. Notice that these should be a
rosarium 0:2ddc0583bcec 91 power of two, eg 64,128,256,512 etc, for efficiency as POT's can be optimized
rosarium 0:2ddc0583bcec 92 well. */
rosarium 0:2ddc0583bcec 93 #define CLOCK_CONF_SECOND 128
rosarium 0:2ddc0583bcec 94 #define RELOAD_VALUE ((F_CPU/CLOCK_CONF_SECOND) - 1)
rosarium 0:2ddc0583bcec 95 /* One tick: 62.5 ms */
rosarium 0:2ddc0583bcec 96
rosarium 0:2ddc0583bcec 97 #define RTIMER_CLOCK_LT(a,b) ((signed short)((a)-(b)) < 0)
rosarium 0:2ddc0583bcec 98 /*---------------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 99 typedef unsigned long clock_time_t;
rosarium 0:2ddc0583bcec 100 typedef unsigned long long rtimer_clock_t;
rosarium 0:2ddc0583bcec 101 /*---------------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 102 #define CC_CONF_REGISTER_ARGS 0
rosarium 0:2ddc0583bcec 103 #define CC_CONF_FUNCTION_POINTER_ARGS 1
rosarium 0:2ddc0583bcec 104 #define CC_CONF_FASTCALL
rosarium 0:2ddc0583bcec 105 #define CC_CONF_VA_ARGS 1
rosarium 0:2ddc0583bcec 106 #define CC_CONF_INLINE inline
rosarium 0:2ddc0583bcec 107
rosarium 0:2ddc0583bcec 108 #define CCIF
rosarium 0:2ddc0583bcec 109 #define CLIF
rosarium 0:2ddc0583bcec 110 /*---------------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 111 typedef uint8_t u8_t;
rosarium 0:2ddc0583bcec 112 typedef uint16_t u16_t;
rosarium 0:2ddc0583bcec 113 typedef uint32_t u32_t;
rosarium 0:2ddc0583bcec 114 typedef int32_t s32_t;
rosarium 0:2ddc0583bcec 115 typedef unsigned short uip_stats_t;
rosarium 0:2ddc0583bcec 116 /*---------------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 117 #define MULTICHAN_CONF_SET_CHANNEL(x)
rosarium 0:2ddc0583bcec 118 #define MULTICHAN_CONF_READ_RSSI(x) 0
rosarium 0:2ddc0583bcec 119 /*---------------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 120 #endif//USE_STM32L1XX_NUCLEO
rosarium 0:2ddc0583bcec 121
rosarium 0:2ddc0583bcec 122 #ifdef USE_STM32F4XX_NUCLEO
rosarium 0:2ddc0583bcec 123 #include <inttypes.h>
rosarium 0:2ddc0583bcec 124 #include <string.h>
rosarium 0:2ddc0583bcec 125 #include "main.h"
rosarium 0:2ddc0583bcec 126 /*---------------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 127 #define PLATFORM_HAS_LEDS 1
rosarium 0:2ddc0583bcec 128 #define PLATFORM_HAS_BUTTON 1
rosarium 0:2ddc0583bcec 129 #define PLATFORM_HAS_RADIO 1
rosarium 0:2ddc0583bcec 130
rosarium 0:2ddc0583bcec 131 #define LEDS_GREEN 1 /*Nucleo LED*/
rosarium 0:2ddc0583bcec 132 #define LEDS_RED 2 /*SPIRIT1 LED*/
rosarium 0:2ddc0583bcec 133
rosarium 0:2ddc0583bcec 134 #ifdef COMPILE_SENSORS
rosarium 0:2ddc0583bcec 135 #define LEDS_CONF_ALL 1 /*Can't use SPIRIT1 LED in this case*/
rosarium 0:2ddc0583bcec 136 #else
rosarium 0:2ddc0583bcec 137 #define LEDS_CONF_ALL 3 /*No sensors -> we can use SPIRIT1 LED in this case*/
rosarium 0:2ddc0583bcec 138 #endif /*COMPILE_SENSORS*/
rosarium 0:2ddc0583bcec 139 /*---------------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 140 #define F_CPU 84000000ul
rosarium 0:2ddc0583bcec 141 #define RTIMER_ARCH_SECOND 96000//32678
rosarium 0:2ddc0583bcec 142 //#define PRESCALER uwPrescalerValue
rosarium 0:2ddc0583bcec 143
rosarium 0:2ddc0583bcec 144 #define UART1_CONF_TX_WITH_INTERRUPT 0
rosarium 0:2ddc0583bcec 145 #define WITH_SERIAL_LINE_INPUT 1
rosarium 0:2ddc0583bcec 146 #define TELNETD_CONF_NUMLINES 6
rosarium 0:2ddc0583bcec 147 #define NETSTACK_CONF_RADIO spirit_radio_driver
rosarium 0:2ddc0583bcec 148 #define NETSTACK_RADIO_MAX_PAYLOAD_LEN 96 /* spirit1-config.h */
rosarium 0:2ddc0583bcec 149
rosarium 0:2ddc0583bcec 150 #if WITH_IP64
rosarium 0:2ddc0583bcec 151 #include "ip64-conf.h"
rosarium 0:2ddc0583bcec 152 #define WITH_SLIP 1
rosarium 0:2ddc0583bcec 153 #ifndef UIP_FALLBACK_INTERFACE
rosarium 0:2ddc0583bcec 154 #define UIP_FALLBACK_INTERFACE ip64_uip_fallback_interface
rosarium 0:2ddc0583bcec 155 #endif
rosarium 0:2ddc0583bcec 156 #endif /* WITH_IP64 */
rosarium 0:2ddc0583bcec 157
rosarium 0:2ddc0583bcec 158 /*---------------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 159 /* define ticks/second for slow and fast clocks. Notice that these should be a
rosarium 0:2ddc0583bcec 160 power of two, eg 64,128,256,512 etc, for efficiency as POT's can be optimized
rosarium 0:2ddc0583bcec 161 well. */
rosarium 0:2ddc0583bcec 162 #define CLOCK_CONF_SECOND 512
rosarium 0:2ddc0583bcec 163 #define RELOAD_VALUE ((F_CPU/CLOCK_CONF_SECOND) - 1)
rosarium 0:2ddc0583bcec 164
rosarium 0:2ddc0583bcec 165 /* One tick: 62.5 ms */
rosarium 0:2ddc0583bcec 166
rosarium 0:2ddc0583bcec 167 #define RTIMER_CLOCK_LT(a,b) ((signed short)((a)-(b)) < 0)
rosarium 0:2ddc0583bcec 168 /*---------------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 169 typedef unsigned long clock_time_t;
rosarium 0:2ddc0583bcec 170 typedef unsigned long long rtimer_clock_t;
rosarium 0:2ddc0583bcec 171 /*---------------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 172 #define CC_CONF_REGISTER_ARGS 0
rosarium 0:2ddc0583bcec 173 #define CC_CONF_FUNCTION_POINTER_ARGS 1
rosarium 0:2ddc0583bcec 174 #define CC_CONF_FASTCALL
rosarium 0:2ddc0583bcec 175 #define CC_CONF_VA_ARGS 1
rosarium 0:2ddc0583bcec 176 #define CC_CONF_INLINE inline
rosarium 0:2ddc0583bcec 177
rosarium 0:2ddc0583bcec 178 #define CCIF
rosarium 0:2ddc0583bcec 179 #define CLIF
rosarium 0:2ddc0583bcec 180 /*---------------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 181 typedef uint8_t u8_t;
rosarium 0:2ddc0583bcec 182 typedef uint16_t u16_t;
rosarium 0:2ddc0583bcec 183 typedef uint32_t u32_t;
rosarium 0:2ddc0583bcec 184 typedef int32_t s32_t;
rosarium 0:2ddc0583bcec 185 typedef unsigned short uip_stats_t;
rosarium 0:2ddc0583bcec 186 /*---------------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 187 #define MULTICHAN_CONF_SET_CHANNEL(x)
rosarium 0:2ddc0583bcec 188 #define MULTICHAN_CONF_READ_RSSI(x) 0
rosarium 0:2ddc0583bcec 189 /*---------------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 190 #endif//USE_STM32F4XX_NUCLEO
rosarium 0:2ddc0583bcec 191
rosarium 0:2ddc0583bcec 192 #endif /* __PLATFORM_CONF_H__ */
rosarium 0:2ddc0583bcec 193 /*---------------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 194 /**
rosarium 0:2ddc0583bcec 195 * @}
rosarium 0:2ddc0583bcec 196 * @}
rosarium 0:2ddc0583bcec 197 */