From 609d10f12fc05a0df0e04d503225091b0fe8b10c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E6=99=9F=E6=98=8A?= Date: Tue, 29 Apr 2025 17:15:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=B2=E5=8F=A3=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 47 +++++++++++++++++++++++++++++++++ .vscode/c_cpp_properties.json | 18 +++++++++++++ .vscode/launch.json | 24 +++++++++++++++++ Makefile | 8 ++++++ examples/simple_clist.c | 4 +-- examples/simple_data_analysis.c | 23 ++++++++-------- keilkill.bat | 32 ++++++++++++++++++++++ 7 files changed, 143 insertions(+), 13 deletions(-) create mode 100644 .gitignore create mode 100644 .vscode/c_cpp_properties.json create mode 100644 .vscode/launch.json create mode 100644 Makefile create mode 100644 keilkill.bat diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b903540 --- /dev/null +++ b/.gitignore @@ -0,0 +1,47 @@ +# Binaries for programs and plugins +*.exe +*.exe~ +*.dll +*.so +*.dylib + +# Test binary, built with `go test -c` +*.test +*.log +# Output of the go coverage tool, specifically when used with LiteIDE +*.out +.VSCodeCounter +USER/Listings +USER/Objects +build +dist + +.vscode/settings.json + +/MDK-ARM/.vscode/uv4.log +/MDK-ARM/.cmsis/include +/MDK-ARM/.eide +/MDK-ARM/.vscode/settings.json +/MDK-ARM/.vscode/tasks.json +/MDK-ARM/.clang-format +/MDK-ARM/.vscode/uv4.log.lock +/MDK-ARM/*.hex +/MDK-ARM/*.bin +/MDK-ARM/.pack + +MDK-ARM/controller/*.hex +Public/Firmware/*.bin +Public/Firmware/*.hex +Public/SIL认证/* + +MDK-ARM/controller.uvguix.xushenghao +MDK-ARM/DebugConfig/controller_STM32L476VGTx.dbgconf +MDK-ARM/RTE/_controller/RTE_Components.h +MDK-ARM/controller/*._2i + + +# User/static.lib +# Middlewares/ST/ARM/DSP/Lib/arm_cortexM4l_math.lib + +User/static-hart.lib +User/static-algorithm.lib diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..ff92585 --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,18 @@ +{ + "configurations": [ + { + "name": "windows-gcc-x64", + "includePath": [ + "${workspaceFolder}/**" + ], + "compilerPath": "C:/TDM-GCC-64/bin/gcc.exe", + "cStandard": "${default}", + "cppStandard": "${default}", + "intelliSenseMode": "windows-gcc-x64", + "compilerArgs": [ + "" + ] + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..f12b099 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,24 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "C/C++ Runner: Debug Session", + "type": "cppdbg", + "request": "launch", + "args": [], + "stopAtEntry": false, + "externalConsole": true, + "cwd": "e:/work/stm32/base_lib/component/examples", + "program": "e:/work/stm32/base_lib/component/examples/build/Debug/outDebug", + "MIMode": "gdb", + "miDebuggerPath": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + } + ] +} \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..d50f792 --- /dev/null +++ b/Makefile @@ -0,0 +1,8 @@ +.PHONY:clean + +all: clean + +clean: + cmd /c keilkill.bat + + diff --git a/examples/simple_clist.c b/examples/simple_clist.c index 3254b07..2686cb0 100644 --- a/examples/simple_clist.c +++ b/examples/simple_clist.c @@ -31,14 +31,14 @@ int32_t main(void) // 3:插入数据 clist_insert(&head, 5, (cnode)1111); - clist_insert_for_node(&head, head->Next->Next->Next->Next->Next, (cnode)10000); + clist_insert_for_node(&head, head->next->next->next->next->next, (cnode)10000); clist_insert(&head, 1000, (cnode)2222); // 无效插入 LOG_PRINT("\n 3: count:%d \n", clist_node_count(head)); clist_print(head); // 4:删除指定节点 clist_remove(&head, (cnode)5); - clist_erase_for_node(&head, head->Next->Next); + clist_erase_for_node(&head, head->next->next); clist_remove(&head, (cnode)1000); // 无效删除 clist_print(head); LOG_PRINT("\n 4: count:%d \n", clist_node_count(head)); diff --git a/examples/simple_data_analysis.c b/examples/simple_data_analysis.c index 41d38ad..486b851 100644 --- a/examples/simple_data_analysis.c +++ b/examples/simple_data_analysis.c @@ -67,6 +67,7 @@ static void data_analysis_event2(void) out_frame_len = data_read(UART_DATA_ANALYSIS_PORT_2, frame, (uint16_t)frame_len); if (out_frame_len != frame_len) { + printf("out_frame_len:%d, frame_len:%d\n", out_frame_len, frame_len); return; } @@ -102,20 +103,20 @@ static void data_register1(void) // 注册数据解析 data_reg_t reg; - reg.sd.valid = true; // 数据头部验证有效标志位 + reg.sd.valid = TRUE; // 数据头部验证有效标志位 reg.sd.len = 1; // 数据头部长度 reg.sd.pos = 0; // 数据头部偏移量 reg.sd.data[0] = FRAME_HEAD; // 数据头部数据 reg.ld.len = 2; // 数据长度 reg.ld.pos = 2; // 报文长度包含帧长,这里需要设置偏移2 - reg.ld.valid = true; // 数据长度有效标志位 - reg.ld.little_endian = false; // 数据长度是否小端模式 + reg.ld.valid = TRUE; // 数据长度有效标志位 + reg.ld.little_endian = FALSE; // 数据长度是否小端模式 reg.argu.len_max = UART_RXSIZE; // 数据最大长度 reg.argu.len_min = 2; // 数据最小长度 - reg.ed.valid = true; // 数据尾部有效标志位 + reg.ed.valid = TRUE; // 数据尾部有效标志位 reg.ed.len = 1; // 数据尾部长度 reg.ed.data[0] = FRAME_TAIL; // 数据尾部数据 - reg.echo_en = false; // 是否回显 + reg.echo_en = FALSE; // 是否回显 reg.func_ptr = data_analysis_event1; // 数据解析回调函数 data_analysis模块处理完数据后,会调用这个函数继续数据协议的处理 uart_data_analysis_cb = data_fsm_init(UART_DATA_ANALYSIS_PORT_1); // 注册数据处理函数 data_analysis模块会调用这个函数,将数据写入到data_analysis模块 data_reg(UART_DATA_ANALYSIS_PORT_1, reg); // 注册数据解析 @@ -137,19 +138,19 @@ static void data_register2(void) // 注册数据解析 data_reg_t reg; - reg.sd.valid = true; // 数据头部验证有效标志位 + reg.sd.valid = TRUE; // 数据头部验证有效标志位 reg.sd.len = 2; // 数据头部长度 reg.sd.pos = 0; // 数据头部偏移量 reg.sd.data[0] = FRAME_HEAD1; // 数据头部数据 reg.sd.data[1] = FRAME_HEAD2; // 数据头部数据 reg.ld.len = 2; // 数据长度 - reg.ld.pos = 2; // 报文长度包含帧长,这里需要设置偏移2 - reg.ld.valid = true; // 数据长度有效标志位 - reg.ld.little_endian = false; // 数据长度是否小端模式 + reg.ld.pos = 0; // 报文长度不包含帧长 + reg.ld.valid = TRUE; // 数据长度有效标志位 + reg.ld.little_endian = FALSE; // 数据长度是否小端模式 reg.argu.len_max = UART_RXSIZE; // 数据最大长度 reg.argu.len_min = 2; // 数据最小长度 - reg.ed.valid = false; // 数据尾部有效标志位 - reg.echo_en = false; // 是否回显 + reg.ed.valid = FALSE; // 数据尾部有效标志位 + reg.echo_en = FALSE; // 是否回显 reg.func_ptr = data_analysis_event2; // 数据解析回调函数 data_analysis模块处理完数据后,会调用这个函数继续数据协议的处理 uart_data_analysis_cb = data_fsm_init(UART_DATA_ANALYSIS_PORT_2); // 注册数据处理函数 data_analysis模块会调用这个函数,将数据写入到data_analysis模块 data_reg(UART_DATA_ANALYSIS_PORT_2, reg); // 注册数据解析 diff --git a/keilkill.bat b/keilkill.bat new file mode 100644 index 0000000..c64943f --- /dev/null +++ b/keilkill.bat @@ -0,0 +1,32 @@ +del *.bak /s +del *.ddk /s +del *.edk /s +del *.lst /s +del *.lnp /s +del *.mpf /s +del *.mpj /s +del *.obj /s +del *.omf /s +::del *.opt /s ::不允许删除JLINK的设置 +del *.plg /s +del *.rpt /s +del *.tmp /s +del *.__i /s +del *.crf /s +del *.o /s +del *.d /s +del *.axf /s +del *.tra /s +del *.dep /s +del JLinkLog.txt /s + +del *.iex /s +del *.htm /s +@REM del *.sct /s +del *.map /s + +del *.dbgconf /s +del *.uvguix.* /s + +del *.orig /s +