aruaru
/
mbed-os-stm32l4-dma-uart
STmicro HAL driver DMA.
main.cpp
- Committer:
- aruaru
- Date:
- 2019-04-08
- Revision:
- 0:96568f3ac645
- Child:
- 2:9d67e2b0d96b
File content as of revision 0:96568f3ac645:
/* mbed Microcontroller Library * Copyright (c) 2018 ARM Limited * SPDX-License-Identifier: Apache-2.0 */ #include "mbed.h" #include "stats_report.h" /* * main.cpp * * Created on: 2019/04/03 * Author: aruaru */ #include "application.h" #include "usart.h" #include "dma.h" #include "mx.h" EventQueue* hqueue; DigitalOut* hled; Timer utime; int now;//1ms毎に更新 int printfunc(const char *format, ...){ char* b; int len; va_list arg; va_start(arg, format); len=vasprintf( &b , format, arg ); int status; int retry; while(1) { status = printUart( b , len ); if(status == HAL_OK)break; wait_ms(10); retry++; if(retry>10)return 0; } va_end(arg); free(b); return len; } void interval1ms(void){ char c; now=utime.read_ms(); if(1){ if( getChar(&c) ){ logMessage("utime:%d,cndtr:%d,pos:%d,%02x,%c\n\r",now,readCndtr(),readPos(),c,c); } } } void interval1000ms(void){ *hled = !*hled; } void systemInfo(){ mbed_stats_sys_t stats; mbed_stats_sys_get(&stats); /* CPUID Register information [31:24]Implementer 0x41 = ARM [23:20]Variant Major revision 0x0 = Revision 0 [19:16]Architecture 0xC = Baseline Architecture 0xF = Constant (Mainline Architecture?) [15:4]PartNO 0xC20 = Cortex-M0 0xC60 = Cortex-M0+ 0xC23 = Cortex-M3 0xC24 = Cortex-M4 0xC27 = Cortex-M7 0xD20 = Cortex-M23 0xD21 = Cortex-M33 [3:0]Revision Minor revision: 0x1 = Patch 1. */ /* Compiler versions: ARM: PVVbbbb (P = Major; VV = Minor; bbbb = build number) GCC: VVRRPP (VV = Version; RR = Revision; PP = Patch) IAR: VRRRPPP (V = Version; RRR = Revision; PPP = Patch) */ logMessage("\n\r[%s] %s started.\n\r",__FUNCTION__,__FILE__ ); logMessage("[%s]\tBUILD:%sT%s,\n\r",__FUNCTION__,__DATE__, __TIME__ ); logMessage("[%s]\tmbed-OS:%d.%d.%d\n\r",__FUNCTION__, MBED_MAJOR_VERSION, MBED_MINOR_VERSION,MBED_PATCH_VERSION ); logMessage("[%s]\tMbed OS Version: %ld \n\r",__FUNCTION__, stats.os_version); logMessage("[%s]\tCPU ID: 0x%x \n\r",__FUNCTION__,(unsigned int) stats.cpu_id); logMessage("[%s]\tCompiler ID: %d \n\r",__FUNCTION__, stats.compiler_id); logMessage("[%s]\tCompiler Version: %d \n\r",__FUNCTION__, (unsigned int)stats.compiler_version); logMessage("[%s]\tSTM32HAL_driver Version: 0x%08x \n\r",__FUNCTION__, (unsigned int)HAL_GetHalVersion()); } int main(){ utime.start(); hled = new DigitalOut(LED1); hqueue = new EventQueue(32*EVENTS_EVENT_SIZE); MX_DMA_Init(); MX_USART2_UART_Init(); HAL_StatusTypeDef status; systemInfo(); status = startRxUart(); if( status != HAL_OK ){ printf("error status: %d\n\r",status); }else{ logMessage("uartRXstart status: %d\n\r", status ); } hqueue->call_every(1000,interval1000ms); hqueue->call_every(1,interval1ms); hqueue->dispatch_forever(); }