Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
00001 /* mbed Microcontroller Library 00002 * Copyright (c) 2018 ARM Limited 00003 * SPDX-License-Identifier: Apache-2.0 00004 */ 00005 00006 #include "mbed.h" 00007 #include "stats_report.h" 00008 00009 /* 00010 * main.cpp 00011 * 00012 * Created on: 2019/04/03 00013 * Author: aruaru 00014 */ 00015 00016 00017 #include "application.h" 00018 00019 #include "usart.h" 00020 #include "dma.h" 00021 #include "mx.h" 00022 00023 EventQueue* hqueue; 00024 DigitalOut* hled; 00025 Timer utime; 00026 int now;//1ms毎に更新 00027 #if defined ( __GNUC__ ) 00028 int printfunc(const char *format, ...){ 00029 char* b; 00030 const size_t size=300; 00031 int len; 00032 va_list arg; 00033 b = (char *)malloc(sizeof(char)*size); 00034 va_start(arg, format); 00035 len=vsnprintf( b , size , format, arg ); 00036 int status; 00037 int retry; 00038 while(1) 00039 { 00040 status = printUart( b , len ); 00041 if(status == HAL_OK)break; 00042 wait_ms(10); 00043 retry++; 00044 if(retry>10){ 00045 len=0; 00046 break; 00047 } 00048 } 00049 va_end(arg); 00050 free(b); 00051 return len; 00052 } 00053 #else 00054 int printfunc(const char *format, ...){ 00055 char* b; 00056 int len; 00057 va_list arg; 00058 va_start(arg, format); 00059 len=vasprintf( &b , format, arg ); 00060 int status; 00061 int retry; 00062 while(1) 00063 { 00064 status = printUart( b , len ); 00065 if(status == HAL_OK)break; 00066 wait_ms(10); 00067 retry++; 00068 if(retry>100){ 00069 len=0; 00070 break; 00071 } 00072 } 00073 va_end(arg); 00074 free(b); 00075 return len; 00076 } 00077 #endif 00078 void interval1ms(void){ 00079 char c; 00080 now=utime.read_ms(); 00081 if(1){ 00082 if( getChar(&c) ){ 00083 logMessage("utime:%d,cndtr:%d,pos:%d,%02x,%c\n\r",now,readCndtr(),readPos(),c,c); 00084 } 00085 } 00086 } 00087 void interval1000ms(void){ 00088 *hled = !*hled; 00089 } 00090 void systemInfo(){ 00091 mbed_stats_sys_t stats; 00092 mbed_stats_sys_get(&stats); 00093 00094 /* CPUID Register information 00095 [31:24]Implementer 0x41 = ARM 00096 [23:20]Variant Major revision 0x0 = Revision 0 00097 [19:16]Architecture 0xC = Baseline Architecture 00098 0xF = Constant (Mainline Architecture?) 00099 [15:4]PartNO 0xC20 = Cortex-M0 00100 0xC60 = Cortex-M0+ 00101 0xC23 = Cortex-M3 00102 0xC24 = Cortex-M4 00103 0xC27 = Cortex-M7 00104 0xD20 = Cortex-M23 00105 0xD21 = Cortex-M33 00106 [3:0]Revision Minor revision: 0x1 = Patch 1. 00107 */ 00108 00109 /* Compiler versions: 00110 ARM: PVVbbbb (P = Major; VV = Minor; bbbb = build number) 00111 GCC: VVRRPP (VV = Version; RR = Revision; PP = Patch) 00112 IAR: VRRRPPP (V = Version; RRR = Revision; PPP = Patch) 00113 */ 00114 logMessage("\n\r[%s] %s started.\n\r",__FUNCTION__,__FILE__ ); 00115 logMessage("[%s]\tBUILD:%sT%s,\n\r",__FUNCTION__,__DATE__, __TIME__ ); 00116 logMessage("[%s]\tmbed-OS:%d.%d.%d\n\r",__FUNCTION__, 00117 MBED_MAJOR_VERSION, MBED_MINOR_VERSION,MBED_PATCH_VERSION 00118 ); 00119 logMessage("[%s]\tMbed OS Version: %ld \n\r",__FUNCTION__, stats.os_version); 00120 logMessage("[%s]\tCPU ID: 0x%x \n\r",__FUNCTION__,(unsigned int) stats.cpu_id); 00121 logMessage("[%s]\tCompiler ID: %d \n\r",__FUNCTION__, stats.compiler_id); 00122 logMessage("[%s]\tCompiler Version: %d \n\r",__FUNCTION__, (unsigned int)stats.compiler_version); 00123 logMessage("[%s]\tSTM32HAL_driver Version: 0x%08x \n\r",__FUNCTION__, (unsigned int)HAL_GetHalVersion()); 00124 } 00125 int main(){ 00126 utime.start(); 00127 hled = new DigitalOut(LED1); 00128 hqueue = new EventQueue(32*EVENTS_EVENT_SIZE); 00129 00130 MX_DMA_Init(); 00131 MX_USART2_UART_Init(); 00132 HAL_StatusTypeDef status; 00133 00134 systemInfo(); 00135 00136 status = startRxUart(); 00137 if( status != HAL_OK ){ 00138 printf("error status: %d\n\r",status); 00139 }else{ 00140 logMessage("uartRXstart status: %d\n\r", status ); 00141 } 00142 hqueue->call_every(1000,interval1000ms); 00143 hqueue->call_every(1,interval1ms); 00144 hqueue->dispatch_forever(); 00145 }
Generated on Fri Jul 15 2022 23:04:23 by
1.7.2