Source code for the SX126xDVK1xAS Dev Kit. This example code has only been tested on the Nucleo L476RG

Dependencies:   mbed DmTftLibrary SX126xLib

Committer:
mantoine
Date:
Mon Jan 07 23:02:45 2019 +0100
Revision:
3:c3ab10127815
Parent:
1:b96176a4ccb8
Updated erroneous path to SX126xLib library.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
GregCr 0:e5420f1a8a1a 1 /*
GregCr 0:e5420f1a8a1a 2 ______ _
GregCr 0:e5420f1a8a1a 3 / _____) _ | |
GregCr 0:e5420f1a8a1a 4 ( (____ _____ ____ _| |_ _____ ____| |__
GregCr 0:e5420f1a8a1a 5 \____ \| ___ | (_ _) ___ |/ ___) _ \
GregCr 0:e5420f1a8a1a 6 _____) ) ____| | | || |_| ____( (___| | | |
GregCr 0:e5420f1a8a1a 7 (______/|_____)_|_|_| \__)_____)\____)_| |_|
GregCr 0:e5420f1a8a1a 8 (C)2016 Semtech
GregCr 0:e5420f1a8a1a 9
GregCr 0:e5420f1a8a1a 10 Description: Main program
GregCr 0:e5420f1a8a1a 11
GregCr 0:e5420f1a8a1a 12 Maintainer: Gregory Cristian & Gilbert Menth
GregCr 0:e5420f1a8a1a 13 */
GregCr 0:e5420f1a8a1a 14
GregCr 0:e5420f1a8a1a 15 #include "mbed.h"
GregCr 0:e5420f1a8a1a 16 #include "Timers.h"
GregCr 0:e5420f1a8a1a 17 #include "Menu.h"
GregCr 0:e5420f1a8a1a 18 #include "Eeprom.h"
GregCr 0:e5420f1a8a1a 19 #include "stm32l4xx_hal.h"
GregCr 0:e5420f1a8a1a 20
GregCr 0:e5420f1a8a1a 21 /*!
GregCr 0:e5420f1a8a1a 22 * \brief Define IO for Unused Pin
GregCr 0:e5420f1a8a1a 23 */
GregCr 0:e5420f1a8a1a 24 DigitalOut F_CS( D6 ); // MBED description of pin
GregCr 0:e5420f1a8a1a 25 DigitalIn blueButton( USER_BUTTON );
GregCr 0:e5420f1a8a1a 26
GregCr 0:e5420f1a8a1a 27 void baud( int baudrate )
GregCr 0:e5420f1a8a1a 28 {
GregCr 0:e5420f1a8a1a 29 Serial s( USBTX, USBRX );
GregCr 0:e5420f1a8a1a 30 s.baud( baudrate );
GregCr 0:e5420f1a8a1a 31 }
GregCr 0:e5420f1a8a1a 32
GregCr 0:e5420f1a8a1a 33 int main( )
GregCr 0:e5420f1a8a1a 34 {
GregCr 0:e5420f1a8a1a 35 uint8_t currentPage = START_PAGE;
GregCr 0:e5420f1a8a1a 36 uint8_t demoStatusUpdate = 0;
GregCr 0:e5420f1a8a1a 37 uint8_t deviceConnected = 0;
GregCr 1:b96176a4ccb8 38 uint8_t matchingFreq = 0;
GregCr 0:e5420f1a8a1a 39
GregCr 0:e5420f1a8a1a 40 if( blueButton == 0 )
GregCr 0:e5420f1a8a1a 41 {
GregCr 1:b96176a4ccb8 42 EepromEraseCheckSum( );
GregCr 0:e5420f1a8a1a 43 NVIC_SystemReset( );
GregCr 0:e5420f1a8a1a 44 }
GregCr 0:e5420f1a8a1a 45
GregCr 0:e5420f1a8a1a 46 baud( 115200 ); // change here to increase or decrease the speed of the UART print
GregCr 0:e5420f1a8a1a 47
GregCr 0:e5420f1a8a1a 48 F_CS = 1;
GregCr 0:e5420f1a8a1a 49
GregCr 0:e5420f1a8a1a 50 deviceConnected = GetConnectedDevice( );
GregCr 1:b96176a4ccb8 51 matchingFreq = GetMatchingFrequency( );
GregCr 1:b96176a4ccb8 52
GregCr 1:b96176a4ccb8 53 EepromInit( deviceConnected, matchingFreq );
GregCr 0:e5420f1a8a1a 54 InitDemoApplication( );
GregCr 1:b96176a4ccb8 55 MenuInit( deviceConnected, matchingFreq );
GregCr 0:e5420f1a8a1a 56 TimersInit( );
GregCr 0:e5420f1a8a1a 57
GregCr 0:e5420f1a8a1a 58 printf( "Start SX126xDevKit : %s\n\r", FIRMWARE_VERSION );
GregCr 0:e5420f1a8a1a 59
GregCr 0:e5420f1a8a1a 60 while( 1 )
GregCr 0:e5420f1a8a1a 61 {
GregCr 0:e5420f1a8a1a 62 currentPage = MenuHandler( demoStatusUpdate );
GregCr 0:e5420f1a8a1a 63
GregCr 0:e5420f1a8a1a 64 switch( currentPage )
GregCr 0:e5420f1a8a1a 65 {
GregCr 0:e5420f1a8a1a 66 case START_PAGE:
GregCr 0:e5420f1a8a1a 67 break;
GregCr 0:e5420f1a8a1a 68
GregCr 0:e5420f1a8a1a 69 case PAGE_PING_PONG:
GregCr 0:e5420f1a8a1a 70 demoStatusUpdate = RunDemoApplicationPingPong( );
GregCr 0:e5420f1a8a1a 71 break;
GregCr 0:e5420f1a8a1a 72
GregCr 0:e5420f1a8a1a 73 case PAGE_PER:
GregCr 0:e5420f1a8a1a 74 demoStatusUpdate = RunDemoApplicationPer( );
GregCr 0:e5420f1a8a1a 75 break;
GregCr 0:e5420f1a8a1a 76
GregCr 1:b96176a4ccb8 77 case PAGE_RSSI_TEST:
GregCr 1:b96176a4ccb8 78 demoStatusUpdate = RunDemoTestRssi( );
GregCr 1:b96176a4ccb8 79 break;
GregCr 1:b96176a4ccb8 80
GregCr 0:e5420f1a8a1a 81 case PAGE_SLEEP_MODE:
GregCr 0:e5420f1a8a1a 82 demoStatusUpdate = RunDemoSleepMode( );
GregCr 0:e5420f1a8a1a 83 break;
GregCr 0:e5420f1a8a1a 84
GregCr 0:e5420f1a8a1a 85 case PAGE_STBY_RC_MODE:
GregCr 0:e5420f1a8a1a 86 demoStatusUpdate = RunDemoStandbyRcMode( );
GregCr 0:e5420f1a8a1a 87 break;
GregCr 0:e5420f1a8a1a 88
GregCr 0:e5420f1a8a1a 89 case PAGE_STBY_XOSC_MODE:
GregCr 0:e5420f1a8a1a 90 demoStatusUpdate = RunDemoStandbyXoscMode( );
GregCr 0:e5420f1a8a1a 91 break;
GregCr 0:e5420f1a8a1a 92
GregCr 0:e5420f1a8a1a 93 case PAGE_TX_CW:
GregCr 0:e5420f1a8a1a 94 demoStatusUpdate = RunDemoTxCw( );
GregCr 0:e5420f1a8a1a 95 break;
GregCr 0:e5420f1a8a1a 96
GregCr 0:e5420f1a8a1a 97 case PAGE_CONT_MODULATION:
GregCr 0:e5420f1a8a1a 98 demoStatusUpdate = RunDemoTxContinuousModulation( );
GregCr 0:e5420f1a8a1a 99 break;
GregCr 0:e5420f1a8a1a 100
GregCr 0:e5420f1a8a1a 101 case PAGE_CONT_RX:
GregCr 0:e5420f1a8a1a 102 demoStatusUpdate = RunDemoRxContinuous( );
GregCr 0:e5420f1a8a1a 103 break;
GregCr 0:e5420f1a8a1a 104 case PAGE_UTILITIES:
GregCr 0:e5420f1a8a1a 105 break;
GregCr 0:e5420f1a8a1a 106
GregCr 0:e5420f1a8a1a 107 default: // Any page not running a demo
GregCr 0:e5420f1a8a1a 108 break;
GregCr 0:e5420f1a8a1a 109 }
GregCr 0:e5420f1a8a1a 110 }
GregCr 0:e5420f1a8a1a 111 }