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 SPIRIT_Types.c
rosarium 0:2ddc0583bcec 4 * @author VMA division - AMS
rosarium 0:2ddc0583bcec 5 * @version 3.2.2
rosarium 0:2ddc0583bcec 6 * @date 08-July-2015
rosarium 0:2ddc0583bcec 7 * @brief File for SPIRIT types.
rosarium 0:2ddc0583bcec 8 * @details
rosarium 0:2ddc0583bcec 9 *
rosarium 0:2ddc0583bcec 10 * @attention
rosarium 0:2ddc0583bcec 11 *
rosarium 0:2ddc0583bcec 12 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
rosarium 0:2ddc0583bcec 13 *
rosarium 0:2ddc0583bcec 14 * Redistribution and use in source and binary forms, with or without modification,
rosarium 0:2ddc0583bcec 15 * are permitted provided that the following conditions are met:
rosarium 0:2ddc0583bcec 16 * 1. Redistributions of source code must retain the above copyright notice,
rosarium 0:2ddc0583bcec 17 * this list of conditions and the following disclaimer.
rosarium 0:2ddc0583bcec 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
rosarium 0:2ddc0583bcec 19 * this list of conditions and the following disclaimer in the documentation
rosarium 0:2ddc0583bcec 20 * and/or other materials provided with the distribution.
rosarium 0:2ddc0583bcec 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
rosarium 0:2ddc0583bcec 22 * may be used to endorse or promote products derived from this software
rosarium 0:2ddc0583bcec 23 * without specific prior written permission.
rosarium 0:2ddc0583bcec 24 *
rosarium 0:2ddc0583bcec 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
rosarium 0:2ddc0583bcec 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
rosarium 0:2ddc0583bcec 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
rosarium 0:2ddc0583bcec 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
rosarium 0:2ddc0583bcec 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
rosarium 0:2ddc0583bcec 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
rosarium 0:2ddc0583bcec 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
rosarium 0:2ddc0583bcec 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
rosarium 0:2ddc0583bcec 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
rosarium 0:2ddc0583bcec 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
rosarium 0:2ddc0583bcec 35 *
rosarium 0:2ddc0583bcec 36 ******************************************************************************
rosarium 0:2ddc0583bcec 37 */
rosarium 0:2ddc0583bcec 38
rosarium 0:2ddc0583bcec 39 /* Includes ------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 40 #include "SPIRIT_Types.h"
rosarium 0:2ddc0583bcec 41 #include "MCU_Interface.h"
rosarium 0:2ddc0583bcec 42
rosarium 0:2ddc0583bcec 43
rosarium 0:2ddc0583bcec 44 /** @addtogroup SPIRIT_Libraries
rosarium 0:2ddc0583bcec 45 * @{
rosarium 0:2ddc0583bcec 46 */
rosarium 0:2ddc0583bcec 47
rosarium 0:2ddc0583bcec 48
rosarium 0:2ddc0583bcec 49 /** @addtogroup SPIRIT_Types
rosarium 0:2ddc0583bcec 50 * @{
rosarium 0:2ddc0583bcec 51 */
rosarium 0:2ddc0583bcec 52
rosarium 0:2ddc0583bcec 53
rosarium 0:2ddc0583bcec 54 /** @defgroup Types_Private_TypesDefinitions Types Private Types Definitions
rosarium 0:2ddc0583bcec 55 * @{
rosarium 0:2ddc0583bcec 56 */
rosarium 0:2ddc0583bcec 57
rosarium 0:2ddc0583bcec 58
rosarium 0:2ddc0583bcec 59 /**
rosarium 0:2ddc0583bcec 60 * @}
rosarium 0:2ddc0583bcec 61 */
rosarium 0:2ddc0583bcec 62
rosarium 0:2ddc0583bcec 63
rosarium 0:2ddc0583bcec 64
rosarium 0:2ddc0583bcec 65 /** @defgroup Types_Private_Defines Types Private Defines
rosarium 0:2ddc0583bcec 66 * @{
rosarium 0:2ddc0583bcec 67 */
rosarium 0:2ddc0583bcec 68
rosarium 0:2ddc0583bcec 69
rosarium 0:2ddc0583bcec 70 /**
rosarium 0:2ddc0583bcec 71 * @}
rosarium 0:2ddc0583bcec 72 */
rosarium 0:2ddc0583bcec 73
rosarium 0:2ddc0583bcec 74
rosarium 0:2ddc0583bcec 75
rosarium 0:2ddc0583bcec 76 /** @defgroup Types_Private_Macros Types Private Macros
rosarium 0:2ddc0583bcec 77 * @{
rosarium 0:2ddc0583bcec 78 */
rosarium 0:2ddc0583bcec 79
rosarium 0:2ddc0583bcec 80
rosarium 0:2ddc0583bcec 81 /**
rosarium 0:2ddc0583bcec 82 * @}
rosarium 0:2ddc0583bcec 83 */
rosarium 0:2ddc0583bcec 84
rosarium 0:2ddc0583bcec 85
rosarium 0:2ddc0583bcec 86
rosarium 0:2ddc0583bcec 87 /** @defgroup Types_Private_Variables Types Private Variables
rosarium 0:2ddc0583bcec 88 * @{
rosarium 0:2ddc0583bcec 89 */
rosarium 0:2ddc0583bcec 90
rosarium 0:2ddc0583bcec 91 /**
rosarium 0:2ddc0583bcec 92 * @brief Spirit Status global variable.
rosarium 0:2ddc0583bcec 93 * This global variable of @ref SpiritStatus type is updated on every SPI transaction
rosarium 0:2ddc0583bcec 94 * to maintain memory of Spirit Status.
rosarium 0:2ddc0583bcec 95 */
rosarium 0:2ddc0583bcec 96
rosarium 0:2ddc0583bcec 97 volatile SpiritStatus g_xStatus;
rosarium 0:2ddc0583bcec 98
rosarium 0:2ddc0583bcec 99 /**
rosarium 0:2ddc0583bcec 100 * @}
rosarium 0:2ddc0583bcec 101 */
rosarium 0:2ddc0583bcec 102
rosarium 0:2ddc0583bcec 103
rosarium 0:2ddc0583bcec 104
rosarium 0:2ddc0583bcec 105 /** @defgroup Types_Private_FunctionPrototypes Types Private FunctionPrototypes
rosarium 0:2ddc0583bcec 106 * @{
rosarium 0:2ddc0583bcec 107 */
rosarium 0:2ddc0583bcec 108
rosarium 0:2ddc0583bcec 109
rosarium 0:2ddc0583bcec 110
rosarium 0:2ddc0583bcec 111 /**
rosarium 0:2ddc0583bcec 112 * @}
rosarium 0:2ddc0583bcec 113 */
rosarium 0:2ddc0583bcec 114
rosarium 0:2ddc0583bcec 115
rosarium 0:2ddc0583bcec 116
rosarium 0:2ddc0583bcec 117 /** @defgroup Types_Private_Functions Types Private Functions
rosarium 0:2ddc0583bcec 118 * @{
rosarium 0:2ddc0583bcec 119 */
rosarium 0:2ddc0583bcec 120
rosarium 0:2ddc0583bcec 121 #ifdef SPIRIT_USE_FULL_ASSERT
rosarium 0:2ddc0583bcec 122 /**
rosarium 0:2ddc0583bcec 123 * @brief Reports the name of the source file and the source line number
rosarium 0:2ddc0583bcec 124 * where the assert_param error has occurred.
rosarium 0:2ddc0583bcec 125 * @param file pointer to the source file name
rosarium 0:2ddc0583bcec 126 * @param line assert_param error line source number
rosarium 0:2ddc0583bcec 127 * @retval : None
rosarium 0:2ddc0583bcec 128 */
rosarium 0:2ddc0583bcec 129 void s_assert_failed(uint8_t* file, uint32_t line)
rosarium 0:2ddc0583bcec 130 {
rosarium 0:2ddc0583bcec 131 /* User can add his own implementation to report the file name and line number */
rosarium 0:2ddc0583bcec 132 printf("Wrong parameters value: file %s on line %d\r\n", file, (int)line);
rosarium 0:2ddc0583bcec 133
rosarium 0:2ddc0583bcec 134 /* Infinite loop */
rosarium 0:2ddc0583bcec 135 while (1)
rosarium 0:2ddc0583bcec 136 {
rosarium 0:2ddc0583bcec 137 }
rosarium 0:2ddc0583bcec 138 }
rosarium 0:2ddc0583bcec 139 #elif SPIRIT_USE_VCOM_ASSERT
rosarium 0:2ddc0583bcec 140
rosarium 0:2ddc0583bcec 141 #include "SDK_EVAL_VC_General.h"
rosarium 0:2ddc0583bcec 142
rosarium 0:2ddc0583bcec 143 /**
rosarium 0:2ddc0583bcec 144 * @brief Reports the name of the source file and the source line number
rosarium 0:2ddc0583bcec 145 * where the assert_param error has occurred.
rosarium 0:2ddc0583bcec 146 * @param file pointer to the source file name
rosarium 0:2ddc0583bcec 147 * @param line assert_param error line source number
rosarium 0:2ddc0583bcec 148 * @param expression: string representing the assert failed expression
rosarium 0:2ddc0583bcec 149 * @retval : None
rosarium 0:2ddc0583bcec 150 */
rosarium 0:2ddc0583bcec 151 void s_assert_failed(uint8_t* file, uint32_t line, char* expression)
rosarium 0:2ddc0583bcec 152 {
rosarium 0:2ddc0583bcec 153
rosarium 0:2ddc0583bcec 154 printf("\n\rVCOM DEBUG: Incorrect parameter. Please reboot.\n\r");
rosarium 0:2ddc0583bcec 155 printf("%s:%d \n\r",file,line);
rosarium 0:2ddc0583bcec 156 printf("The expression %s returned FALSE.\n\r", expression);
rosarium 0:2ddc0583bcec 157
rosarium 0:2ddc0583bcec 158 /* Infinite loop */
rosarium 0:2ddc0583bcec 159 while (1)
rosarium 0:2ddc0583bcec 160 {
rosarium 0:2ddc0583bcec 161 }
rosarium 0:2ddc0583bcec 162 }
rosarium 0:2ddc0583bcec 163
rosarium 0:2ddc0583bcec 164 #elif SPIRIT_USE_FRAME_ASSERT
rosarium 0:2ddc0583bcec 165
rosarium 0:2ddc0583bcec 166 #include "SdkUsbProtocol.h"
rosarium 0:2ddc0583bcec 167
rosarium 0:2ddc0583bcec 168 /**
rosarium 0:2ddc0583bcec 169 * @brief Sends a notify frame with a payload indicating the name
rosarium 0:2ddc0583bcec 170 * of the assert failed.
rosarium 0:2ddc0583bcec 171 * @param expression: string representing the assert failed expression
rosarium 0:2ddc0583bcec 172 * @retval : None
rosarium 0:2ddc0583bcec 173 */
rosarium 0:2ddc0583bcec 174 void s_assert_failed(char* expression)
rosarium 0:2ddc0583bcec 175 {
rosarium 0:2ddc0583bcec 176 char pcPayload[100];
rosarium 0:2ddc0583bcec 177 uint16_t i;
rosarium 0:2ddc0583bcec 178
rosarium 0:2ddc0583bcec 179 for(i = 0 ; expression[i]!='(' ; i++);
rosarium 0:2ddc0583bcec 180 expression[i]='\0';
rosarium 0:2ddc0583bcec 181
rosarium 0:2ddc0583bcec 182 strcpy(pcPayload, &expression[3]);
rosarium 0:2ddc0583bcec 183
rosarium 0:2ddc0583bcec 184 //sprintf(pcPayload, "The expression %s returned FALSE.\n\r", expression);
rosarium 0:2ddc0583bcec 185 SpiritNotifyAssertFailed(pcPayload);
rosarium 0:2ddc0583bcec 186
rosarium 0:2ddc0583bcec 187 }
rosarium 0:2ddc0583bcec 188
rosarium 0:2ddc0583bcec 189 #endif
rosarium 0:2ddc0583bcec 190
rosarium 0:2ddc0583bcec 191
rosarium 0:2ddc0583bcec 192 /**
rosarium 0:2ddc0583bcec 193 * @brief Updates the gState (the global variable used to maintain memory of Spirit Status)
rosarium 0:2ddc0583bcec 194 * reading the MC_STATE register of SPIRIT.
rosarium 0:2ddc0583bcec 195 * @param None
rosarium 0:2ddc0583bcec 196 * @retval None
rosarium 0:2ddc0583bcec 197 */
rosarium 0:2ddc0583bcec 198 void SpiritRefreshStatus(void)
rosarium 0:2ddc0583bcec 199 {
rosarium 0:2ddc0583bcec 200 uint8_t tempRegValue;
rosarium 0:2ddc0583bcec 201
rosarium 0:2ddc0583bcec 202 /* Reads the MC_STATUS register to update the g_xStatus */
rosarium 0:2ddc0583bcec 203 g_xStatus = SpiritSpiReadRegisters(MC_STATE1_BASE, 1, &tempRegValue);
rosarium 0:2ddc0583bcec 204 }
rosarium 0:2ddc0583bcec 205
rosarium 0:2ddc0583bcec 206
rosarium 0:2ddc0583bcec 207 /**
rosarium 0:2ddc0583bcec 208 * @}
rosarium 0:2ddc0583bcec 209 */
rosarium 0:2ddc0583bcec 210
rosarium 0:2ddc0583bcec 211
rosarium 0:2ddc0583bcec 212
rosarium 0:2ddc0583bcec 213 /**
rosarium 0:2ddc0583bcec 214 * @}
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
rosarium 0:2ddc0583bcec 225 /******************* (C) COPYRIGHT 2015 STMicroelectronics *****END OF FILE****/