gabrio gabrio / Mbed 2 deprecated TRANSMITTER

Dependencies:   BufferedSerial SX1276GenericLib mbed

Committer:
gabrio
Date:
Wed May 23 20:59:12 2018 +0000
Revision:
0:acd8e2ba10c5
Child:
2:5ddb3de762a0
Reads from A0 AND A2 and transmit through lora (no encryption)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gabrio 0:acd8e2ba10c5 1 /*
gabrio 0:acd8e2ba10c5 2 * Copyright (c) 2017 Helmut Tschemernjak
gabrio 0:acd8e2ba10c5 3 * 30826 Garbsen (Hannover) Germany
gabrio 0:acd8e2ba10c5 4 * Licensed under the Apache License, Version 2.0);
gabrio 0:acd8e2ba10c5 5 */
gabrio 0:acd8e2ba10c5 6 #include "main.h"
gabrio 0:acd8e2ba10c5 7
gabrio 0:acd8e2ba10c5 8 DigitalOut myled(LED1);
gabrio 0:acd8e2ba10c5 9 BufferedSerial *ser;
gabrio 0:acd8e2ba10c5 10
gabrio 0:acd8e2ba10c5 11 int main() {
gabrio 0:acd8e2ba10c5 12 SystemClock_Config();
gabrio 0:acd8e2ba10c5 13 ser = new BufferedSerial(USBTX, USBRX);
gabrio 0:acd8e2ba10c5 14 ser->baud(115200*2);
gabrio 0:acd8e2ba10c5 15 ser->format(8);
gabrio 0:acd8e2ba10c5 16 ser->printf("Hello World\n\r");
gabrio 0:acd8e2ba10c5 17 myled = 1;
gabrio 0:acd8e2ba10c5 18
gabrio 0:acd8e2ba10c5 19 Transmitter();
gabrio 0:acd8e2ba10c5 20 }
gabrio 0:acd8e2ba10c5 21
gabrio 0:acd8e2ba10c5 22
gabrio 0:acd8e2ba10c5 23
gabrio 0:acd8e2ba10c5 24
gabrio 0:acd8e2ba10c5 25 void SystemClock_Config(void)
gabrio 0:acd8e2ba10c5 26 {
gabrio 0:acd8e2ba10c5 27 #ifdef B_L072Z_LRWAN1_LORA
gabrio 0:acd8e2ba10c5 28 /*
gabrio 0:acd8e2ba10c5 29 * The L072Z_LRWAN1_LORA clock setup is somewhat differnt from the Nucleo board.
gabrio 0:acd8e2ba10c5 30 * It has no LSE.
gabrio 0:acd8e2ba10c5 31 */
gabrio 0:acd8e2ba10c5 32 RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
gabrio 0:acd8e2ba10c5 33 RCC_OscInitTypeDef RCC_OscInitStruct = {0};
gabrio 0:acd8e2ba10c5 34
gabrio 0:acd8e2ba10c5 35 /* Enable HSE Oscillator and Activate PLL with HSE as source */
gabrio 0:acd8e2ba10c5 36 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
gabrio 0:acd8e2ba10c5 37 RCC_OscInitStruct.HSEState = RCC_HSE_OFF;
gabrio 0:acd8e2ba10c5 38 RCC_OscInitStruct.HSIState = RCC_HSI_ON;
gabrio 0:acd8e2ba10c5 39 RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
gabrio 0:acd8e2ba10c5 40 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
gabrio 0:acd8e2ba10c5 41 RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
gabrio 0:acd8e2ba10c5 42 RCC_OscInitStruct.PLL.PLLMUL = RCC_PLLMUL_6;
gabrio 0:acd8e2ba10c5 43 RCC_OscInitStruct.PLL.PLLDIV = RCC_PLLDIV_3;
gabrio 0:acd8e2ba10c5 44
gabrio 0:acd8e2ba10c5 45 if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
gabrio 0:acd8e2ba10c5 46 // Error_Handler();
gabrio 0:acd8e2ba10c5 47 }
gabrio 0:acd8e2ba10c5 48
gabrio 0:acd8e2ba10c5 49 /* Set Voltage scale1 as MCU will run at 32MHz */
gabrio 0:acd8e2ba10c5 50 __HAL_RCC_PWR_CLK_ENABLE();
gabrio 0:acd8e2ba10c5 51 __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
gabrio 0:acd8e2ba10c5 52
gabrio 0:acd8e2ba10c5 53 /* Poll VOSF bit of in PWR_CSR. Wait until it is reset to 0 */
gabrio 0:acd8e2ba10c5 54 while (__HAL_PWR_GET_FLAG(PWR_FLAG_VOS) != RESET) {};
gabrio 0:acd8e2ba10c5 55
gabrio 0:acd8e2ba10c5 56 /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2
gabrio 0:acd8e2ba10c5 57 clocks dividers */
gabrio 0:acd8e2ba10c5 58 RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
gabrio 0:acd8e2ba10c5 59 RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
gabrio 0:acd8e2ba10c5 60 RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
gabrio 0:acd8e2ba10c5 61 RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
gabrio 0:acd8e2ba10c5 62 RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
gabrio 0:acd8e2ba10c5 63 if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) {
gabrio 0:acd8e2ba10c5 64 // Error_Handler();
gabrio 0:acd8e2ba10c5 65 }
gabrio 0:acd8e2ba10c5 66 #endif
gabrio 0:acd8e2ba10c5 67 }
gabrio 0:acd8e2ba10c5 68
gabrio 0:acd8e2ba10c5 69 void dump(const char *title, const void *data, int len, bool dwords)
gabrio 0:acd8e2ba10c5 70 {
gabrio 0:acd8e2ba10c5 71 dprintf("dump(\"%s\", 0x%x, %d bytes)", title, data, len);
gabrio 0:acd8e2ba10c5 72
gabrio 0:acd8e2ba10c5 73 int i, j, cnt;
gabrio 0:acd8e2ba10c5 74 unsigned char *u;
gabrio 0:acd8e2ba10c5 75 const int width = 16;
gabrio 0:acd8e2ba10c5 76 const int seppos = 7;
gabrio 0:acd8e2ba10c5 77
gabrio 0:acd8e2ba10c5 78 cnt = 0;
gabrio 0:acd8e2ba10c5 79 u = (unsigned char *)data;
gabrio 0:acd8e2ba10c5 80 while (len > 0) {
gabrio 0:acd8e2ba10c5 81 ser->printf("%08x: ", (unsigned int)data + cnt);
gabrio 0:acd8e2ba10c5 82 if (dwords) {
gabrio 0:acd8e2ba10c5 83 unsigned int *ip = ( unsigned int *)u;
gabrio 0:acd8e2ba10c5 84 ser->printf(" 0x%08x\r\n", *ip);
gabrio 0:acd8e2ba10c5 85 u+= 4;
gabrio 0:acd8e2ba10c5 86 len -= 4;
gabrio 0:acd8e2ba10c5 87 cnt += 4;
gabrio 0:acd8e2ba10c5 88 continue;
gabrio 0:acd8e2ba10c5 89 }
gabrio 0:acd8e2ba10c5 90 cnt += width;
gabrio 0:acd8e2ba10c5 91 j = len < width ? len : width;
gabrio 0:acd8e2ba10c5 92 for (i = 0; i < j; i++) {
gabrio 0:acd8e2ba10c5 93 ser->printf("%2.2x ", *(u + i));
gabrio 0:acd8e2ba10c5 94 if (i == seppos)
gabrio 0:acd8e2ba10c5 95 ser->putc(' ');
gabrio 0:acd8e2ba10c5 96 }
gabrio 0:acd8e2ba10c5 97 ser->putc(' ');
gabrio 0:acd8e2ba10c5 98 if (j < width) {
gabrio 0:acd8e2ba10c5 99 i = width - j;
gabrio 0:acd8e2ba10c5 100 if (i > seppos + 1)
gabrio 0:acd8e2ba10c5 101 ser->putc(' ');
gabrio 0:acd8e2ba10c5 102 while (i--) {
gabrio 0:acd8e2ba10c5 103 printf("%s", " ");
gabrio 0:acd8e2ba10c5 104 }
gabrio 0:acd8e2ba10c5 105 }
gabrio 0:acd8e2ba10c5 106 for (i = 0; i < j; i++) {
gabrio 0:acd8e2ba10c5 107 int c = *(u + i);
gabrio 0:acd8e2ba10c5 108 if (c >= ' ' && c <= '~')
gabrio 0:acd8e2ba10c5 109 ser->putc(c);
gabrio 0:acd8e2ba10c5 110 else
gabrio 0:acd8e2ba10c5 111 ser->putc('.');
gabrio 0:acd8e2ba10c5 112 if (i == seppos)
gabrio 0:acd8e2ba10c5 113 ser->putc(' ');
gabrio 0:acd8e2ba10c5 114 }
gabrio 0:acd8e2ba10c5 115 len -= width;
gabrio 0:acd8e2ba10c5 116 u += width;
gabrio 0:acd8e2ba10c5 117 ser->printf("\r\n");
gabrio 0:acd8e2ba10c5 118 }
gabrio 0:acd8e2ba10c5 119 ser->printf("--\r\n");
gabrio 0:acd8e2ba10c5 120 }