Lora support for the STM B_L072Z_LRWAN1 board out of the box. Also supports HopeRF RFM95, Murata CMWX1ZZABZ and Semtech SX1276MB1MAS/SX1276MB1LAS modules.

Dependencies:   BufferedSerial SX1276GenericLib mbed USBDeviceHT

Committer:
Helmut64
Date:
Thu Feb 22 11:12:24 2018 +0000
Revision:
16:675f4d0ee9e9
Parent:
13:5a32a1922fbc
Child:
17:98f2528e8399
Added proper PinMap for the Heltec Board; updated libs

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Helmut64 0:c43b6919ae15 1 /*
Helmut64 0:c43b6919ae15 2 * Copyright (c) 2017 Helmut Tschemernjak
Helmut64 0:c43b6919ae15 3 * 30826 Garbsen (Hannover) Germany
Helmut64 0:c43b6919ae15 4 * Licensed under the Apache License, Version 2.0);
Helmut64 0:c43b6919ae15 5 */
Helmut64 0:c43b6919ae15 6 #include "main.h"
Helmut64 0:c43b6919ae15 7
Helmut64 8:3b0d7b4ff28f 8 /*
Helmut64 8:3b0d7b4ff28f 9 * IMPORTANT NOTE
Helmut64 8:3b0d7b4ff28f 10 * Use the Nucleo-L073RZ target for the STM B_L072Z_LRWAN1 LoRa board
Helmut64 8:3b0d7b4ff28f 11 */
Helmut64 13:5a32a1922fbc 12 DigitalOut myled(LED2);
Helmut64 0:c43b6919ae15 13 BufferedSerial *ser;
Helmut64 0:c43b6919ae15 14
Helmut64 0:c43b6919ae15 15 int main() {
Helmut64 0:c43b6919ae15 16 ser = new BufferedSerial(USBTX, USBRX);
Helmut64 16:675f4d0ee9e9 17 ser->baud(230400);
Helmut64 0:c43b6919ae15 18 ser->format(8);
Helmut64 0:c43b6919ae15 19 ser->printf("Hello World\n\r");
Helmut64 0:c43b6919ae15 20 myled = 1;
Helmut64 13:5a32a1922fbc 21
Helmut64 0:c43b6919ae15 22 SX1276PingPong();
Helmut64 0:c43b6919ae15 23 }
Helmut64 0:c43b6919ae15 24
Helmut64 0:c43b6919ae15 25
Helmut64 0:c43b6919ae15 26 void dump(const char *title, const void *data, int len, bool dwords)
Helmut64 0:c43b6919ae15 27 {
Helmut64 0:c43b6919ae15 28 dprintf("dump(\"%s\", 0x%x, %d bytes)", title, data, len);
Helmut64 0:c43b6919ae15 29
Helmut64 0:c43b6919ae15 30 int i, j, cnt;
Helmut64 0:c43b6919ae15 31 unsigned char *u;
Helmut64 0:c43b6919ae15 32 const int width = 16;
Helmut64 0:c43b6919ae15 33 const int seppos = 7;
Helmut64 0:c43b6919ae15 34
Helmut64 0:c43b6919ae15 35 cnt = 0;
Helmut64 0:c43b6919ae15 36 u = (unsigned char *)data;
Helmut64 0:c43b6919ae15 37 while (len > 0) {
Helmut64 0:c43b6919ae15 38 ser->printf("%08x: ", (unsigned int)data + cnt);
Helmut64 0:c43b6919ae15 39 if (dwords) {
Helmut64 0:c43b6919ae15 40 unsigned int *ip = ( unsigned int *)u;
Helmut64 0:c43b6919ae15 41 ser->printf(" 0x%08x\r\n", *ip);
Helmut64 0:c43b6919ae15 42 u+= 4;
Helmut64 0:c43b6919ae15 43 len -= 4;
Helmut64 0:c43b6919ae15 44 cnt += 4;
Helmut64 0:c43b6919ae15 45 continue;
Helmut64 0:c43b6919ae15 46 }
Helmut64 0:c43b6919ae15 47 cnt += width;
Helmut64 0:c43b6919ae15 48 j = len < width ? len : width;
Helmut64 0:c43b6919ae15 49 for (i = 0; i < j; i++) {
Helmut64 0:c43b6919ae15 50 ser->printf("%2.2x ", *(u + i));
Helmut64 0:c43b6919ae15 51 if (i == seppos)
Helmut64 0:c43b6919ae15 52 ser->putc(' ');
Helmut64 0:c43b6919ae15 53 }
Helmut64 0:c43b6919ae15 54 ser->putc(' ');
Helmut64 0:c43b6919ae15 55 if (j < width) {
Helmut64 0:c43b6919ae15 56 i = width - j;
Helmut64 0:c43b6919ae15 57 if (i > seppos + 1)
Helmut64 0:c43b6919ae15 58 ser->putc(' ');
Helmut64 0:c43b6919ae15 59 while (i--) {
Helmut64 0:c43b6919ae15 60 printf("%s", " ");
Helmut64 0:c43b6919ae15 61 }
Helmut64 0:c43b6919ae15 62 }
Helmut64 0:c43b6919ae15 63 for (i = 0; i < j; i++) {
Helmut64 0:c43b6919ae15 64 int c = *(u + i);
Helmut64 0:c43b6919ae15 65 if (c >= ' ' && c <= '~')
Helmut64 0:c43b6919ae15 66 ser->putc(c);
Helmut64 0:c43b6919ae15 67 else
Helmut64 0:c43b6919ae15 68 ser->putc('.');
Helmut64 0:c43b6919ae15 69 if (i == seppos)
Helmut64 0:c43b6919ae15 70 ser->putc(' ');
Helmut64 0:c43b6919ae15 71 }
Helmut64 0:c43b6919ae15 72 len -= width;
Helmut64 0:c43b6919ae15 73 u += width;
Helmut64 0:c43b6919ae15 74 ser->printf("\r\n");
Helmut64 0:c43b6919ae15 75 }
Helmut64 0:c43b6919ae15 76 ser->printf("--\r\n");
Helmut64 0:c43b6919ae15 77 }