diff --git a/app/MDK-ARM/app.uvguix.29643 b/app/MDK-ARM/app.uvguix.29643
index e5fd1ee..d66ee78 100644
--- a/app/MDK-ARM/app.uvguix.29643
+++ b/app/MDK-ARM/app.uvguix.29643
@@ -6,7 +6,7 @@
### uVision Project, (C) Keil Software
- C:\Users\29643\Desktop\FZMotion_capture_system_accessories_pack\iflytop_microcontroller\zmodbus\std
+ C:\Users\29643\Desktop\FZMotion_capture_system_accessories_pack\src
@@ -110,8 +110,8 @@
0
- 1132
- 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000800000007000000010000004E433A5C55736572735C32393634335C4465736B746F705C465A4D6F74696F6E5F636170747572655F73797374656D5F6163636573736F726965735F7061636B5C7372635C757365726D61696E2E63000000000A757365726D61696E2E6300000000C5D4F200FFFFFFFF53433A5C55736572735C32393634335C4465736B746F705C465A4D6F74696F6E5F636170747572655F73797374656D5F6163636573736F726965735F7061636B5C6170705C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF4A433A5C55736572735C32393634335C4465736B746F705C465A4D6F74696F6E5F636170747572655F73797374656D5F6163636573736F726965735F7061636B5C7372635C706F72742E630000000006706F72742E6300000000BECEA100FFFFFFFF6C433A5C55736572735C32393634335C4465736B746F705C465A4D6F74696F6E5F636170747572655F73797374656D5F6163636573736F726965735F7061636B5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C73646B5C73746D33325C73746D333273646B2E68000000000A73746D333273646B2E6800000000F0A0A100FFFFFFFF67433A5C55736572735C32393634335C4465736B746F705C465A4D6F74696F6E5F636170747572655F73797374656D5F6163636573736F726965735F7061636B5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C73646B5C73746D33325C70776D2E68000000000570776D2E6800000000BCA8E100FFFFFFFF4A433A5C55736572735C32393634335C4465736B746F705C465A4D6F74696F6E5F636170747572655F73797374656D5F6163636573736F726965735F7061636B5C7372635C706F72742E680000000006706F72742E68000000009CC1B600FFFFFFFF76433A5C55736572735C32393634335C4465736B746F705C465A4D6F74696F6E5F636170747572655F73797374656D5F6163636573736F726965735F7061636B5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C7A6D6F646275735C7374645C6D6F646275735F70726F6365737365722E6800000000126D6F646275735F70726F6365737365722E6800000000F7B88600FFFFFFFF70433A5C55736572735C32393634335C4465736B746F705C465A4D6F74696F6E5F636170747572655F73797374656D5F6163636573736F726965735F7061636B5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C66616E636F6E74726F6C65725C73746D33325C66616E2E68000000000566616E2E6800000000D9ADC200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000007408000066000000000F000075020000
+ 1164
+ 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000800000007000000010000004E433A5C55736572735C32393634335C4465736B746F705C465A4D6F74696F6E5F636170747572655F73797374656D5F6163636573736F726965735F7061636B5C7372635C757365726D61696E2E63000000000A757365726D61696E2E6300000000C5D4F200FFFFFFFF53433A5C55736572735C32393634335C4465736B746F705C465A4D6F74696F6E5F636170747572655F73797374656D5F6163636573736F726965735F7061636B5C6170705C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF6C433A5C55736572735C32393634335C4465736B746F705C465A4D6F74696F6E5F636170747572655F73797374656D5F6163636573736F726965735F7061636B5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C73646B5C73746D33325C73746D333273646B2E68000000000A73746D333273646B2E6800000000F0A0A100FFFFFFFF67433A5C55736572735C32393634335C4465736B746F705C465A4D6F74696F6E5F636170747572655F73797374656D5F6163636573736F726965735F7061636B5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C73646B5C73746D33325C70776D2E68000000000570776D2E6800000000BCA8E100FFFFFFFF76433A5C55736572735C32393634335C4465736B746F705C465A4D6F74696F6E5F636170747572655F73797374656D5F6163636573736F726965735F7061636B5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C7A6D6F646275735C7374645C6D6F646275735F70726F6365737365722E6800000000126D6F646275735F70726F6365737365722E6800000000F7B88600FFFFFFFF70433A5C55736572735C32393634335C4465736B746F705C465A4D6F74696F6E5F636170747572655F73797374656D5F6163636573736F726965735F7061636B5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C66616E636F6E74726F6C65725C73746D33325C66616E2E68000000000566616E2E6800000000D9ADC200FFFFFFFF4C433A5C55736572735C32393634335C4465736B746F705C465A4D6F74696F6E5F636170747572655F73797374656D5F6163636573736F726965735F7061636B5C7372635C636F6E6669672E630000000008636F6E6669672E6300000000A5C2D700FFFFFFFF67433A5C55736572735C32393634335C4465736B746F705C465A4D6F74696F6E5F636170747572655F73797374656D5F6163636573736F726965735F7061636B5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C73646B5C73746D33325C70776D2E63000000000570776D2E6300000000D9ADC200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000007408000066000000000F000075020000
@@ -1806,7 +1806,7 @@
File
2537
- 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000
+ 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000
1423
@@ -1822,7 +1822,7 @@
Build
966
- 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000036170709600000000000000010003617070000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
+ 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000002001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000036170709600000000000000010003617070000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
583
@@ -1865,9 +1865,9 @@
7
..\..\src\usermain.c
- 0
+ 3
1
- 1
+ 26
1
0
@@ -1882,55 +1882,55 @@
0
- ..\..\src\port.c
- 17
- 4
- 20
+ ../Core/Inc/../../../iflytop_microcontroller/sdk/stm32/stm32sdk.h
+ 0
+ 15
+ 42
1
0
- ../../src/../iflytop_microcontroller/sdk/stm32/stm32sdk.h
+ ../../iflytop_microcontroller/sdk/stm32/pwm.h
0
1
- 42
+ 5
1
0
- ../../src/../iflytop_microcontroller/sdk/stm32/pwm.h
+ C:\Users\29643\Desktop\FZMotion_capture_system_accessories_pack\iflytop_microcontroller\zmodbus\std\modbus_processer.h
0
1
- 5
+ 4
1
0
- ..\..\src\port.h
- 0
+ ..\..\iflytop_microcontroller\fancontroler\stm32\fan.h
+ 13
1
- 1
+ 17
1
0
- C:\Users\29643\Desktop\FZMotion_capture_system_accessories_pack\iflytop_microcontroller\zmodbus\std\modbus_processer.h
+ ..\..\src\config.c
0
- 1
- 4
+ 79
+ 94
1
0
- ..\..\iflytop_microcontroller\fancontroler\stm32\fan.h
- 26
- 1
- 9
+ ..\..\iflytop_microcontroller\sdk\stm32\pwm.c
+ 0
+ 8
+ 89
1
0
diff --git a/app/MDK-ARM/app.uvoptx b/app/MDK-ARM/app.uvoptx
index 8baafb2..7746efc 100644
--- a/app/MDK-ARM/app.uvoptx
+++ b/app/MDK-ARM/app.uvoptx
@@ -1719,7 +1719,7 @@
src
- 0
+ 1
0
0
0
@@ -1742,6 +1742,30 @@
0
0
0
+ ..\..\src\config.c
+ config.c
+ 0
+ 0
+
+
+ 10
+ 125
+ 1
+ 0
+ 0
+ 0
+ ..\..\src\protocol.c
+ protocol.c
+ 0
+ 0
+
+
+ 10
+ 126
+ 1
+ 0
+ 0
+ 0
..\..\src\port.c
port.c
0
@@ -1757,7 +1781,7 @@
0
11
- 125
+ 127
1
0
0
@@ -1769,19 +1793,7 @@
11
- 126
- 1
- 0
- 0
- 0
- ..\..\iflytop_microcontroller\math\std\math.c
- math.c
- 0
- 0
-
-
- 11
- 127
+ 128
1
0
0
@@ -1793,7 +1805,7 @@
11
- 128
+ 129
1
0
0
@@ -1805,7 +1817,7 @@
11
- 129
+ 130
1
0
0
diff --git a/app/MDK-ARM/app.uvprojx b/app/MDK-ARM/app.uvprojx
index e520714..dea26cb 100644
--- a/app/MDK-ARM/app.uvprojx
+++ b/app/MDK-ARM/app.uvprojx
@@ -339,7 +339,7 @@
--diag_suppress=381 --diag_suppress=1 --diag_suppress=177 --diag_suppress=111 --diag_suppress=1295
USE_HAL_DRIVER,STM32F407xx
- ../Core/Inc;../LWIP/App;../LWIP/Target;../Middlewares/Third_Party/LwIP/src/include;../Middlewares/Third_Party/LwIP/system;../Drivers/STM32F4xx_HAL_Driver/Inc;../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy;../Middlewares/Third_Party/FreeRTOS/Source/include;../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS;../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F;../Drivers/BSP/Components/lan8742;../Middlewares/Third_Party/LwIP/src/include/netif/ppp;../Drivers/CMSIS/Device/ST/STM32F4xx/Include;../Middlewares/Third_Party/LwIP/src/include/lwip;../Middlewares/Third_Party/LwIP/src/include/lwip/apps;../Middlewares/Third_Party/LwIP/src/include/lwip/priv;../Middlewares/Third_Party/LwIP/src/include/lwip/prot;../Middlewares/Third_Party/LwIP/src/include/netif;../Middlewares/Third_Party/LwIP/src/include/compat/posix;../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa;../Middlewares/Third_Party/LwIP/src/include/compat/posix/net;../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys;../Middlewares/Third_Party/LwIP/src/include/compat/stdc;../Middlewares/Third_Party/LwIP/system/arch;../Drivers/CMSIS/Include;../../src;../../iflytop_microcontroller\sdk\stm32
+ ../Core/Inc;../LWIP/App;../LWIP/Target;../Middlewares/Third_Party/LwIP/src/include;../Middlewares/Third_Party/LwIP/system;../Drivers/STM32F4xx_HAL_Driver/Inc;../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy;../Middlewares/Third_Party/FreeRTOS/Source/include;../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS;../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F;../Drivers/BSP/Components/lan8742;../Middlewares/Third_Party/LwIP/src/include/netif/ppp;../Drivers/CMSIS/Device/ST/STM32F4xx/Include;../Middlewares/Third_Party/LwIP/src/include/lwip;../Middlewares/Third_Party/LwIP/src/include/lwip/apps;../Middlewares/Third_Party/LwIP/src/include/lwip/priv;../Middlewares/Third_Party/LwIP/src/include/lwip/prot;../Middlewares/Third_Party/LwIP/src/include/netif;../Middlewares/Third_Party/LwIP/src/include/compat/posix;../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa;../Middlewares/Third_Party/LwIP/src/include/compat/posix/net;../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys;../Middlewares/Third_Party/LwIP/src/include/compat/stdc;../Middlewares/Third_Party/LwIP/system/arch;../Drivers/CMSIS/Include;../../src;../../
@@ -1095,6 +1095,16 @@
..\..\src\usermain.c
+ config.c
+ 1
+ ..\..\src\config.c
+
+
+ protocol.c
+ 1
+ ..\..\src\protocol.c
+
+
port.c
1
..\..\src\port.c
@@ -1110,11 +1120,6 @@
..\..\iflytop_microcontroller\fancontroler\stm32\fan.c
- math.c
- 1
- ..\..\iflytop_microcontroller\math\std\math.c
-
-
pwm.c
1
..\..\iflytop_microcontroller\sdk\stm32\pwm.c
diff --git a/src/config.c b/src/config.c
new file mode 100644
index 0000000..64afc78
--- /dev/null
+++ b/src/config.c
@@ -0,0 +1,122 @@
+#include "config.h"
+
+#include "../app/Middlewares/Third_Party/LwIP/src/include/lwip/inet.h"
+#include "../iflytop_microcontroller/sdk/stm32/stm32sdk.h"
+#include "lwip.h"
+#include "protocol.h"
+#include "zboard.h"
+
+#define TAG "CONFIG"
+
+static config_t s_config;
+
+// static nvs_handle s_nvs_handle; // NVS是esp32中的,相当于flash
+static bool s_is_first_init = false;
+
+typedef int8_t i8;
+typedef uint8_t u8;
+typedef int16_t i16;
+typedef uint16_t u16;
+typedef int32_t i32;
+typedef uint32_t u32;
+typedef int64_t i64;
+typedef uint64_t u64;
+
+// #define INIT_CONFIG(type, name, markname) \
+// type name = 0; \
+// err = nvs_get_##type(s_nvs_handle, markname, &name); \
+// if (err == ESP_OK && !refresh_config) { \
+// s_config.name = name; \
+// } else { \
+// s_is_first_init = true; \
+// ESP_LOGI(TAG, "reconfig config %s", #name); \
+// err = nvs_set_##type(s_nvs_handle, markname, s_config.name); \
+// if (err != ESP_OK) { \
+// ESP_LOGE(TAG, "nvs set %s fail,error %d", #name, err); \
+// } \
+// }
+
+// #define UPDATE_CONFIG(type, name, markname) \
+// type name = 0; \
+// err = nvs_get_##type(s_nvs_handle, markname, &name); \
+// if (err == ESP_OK) { \
+// if (s_config.name != name) { \
+// err = nvs_set_##type(s_nvs_handle, markname, s_config.name); \
+// if (err != ESP_OK) { \
+// ESP_LOGE(TAG, "nvs set %s fail,error %d", #name, err); \
+// } else { \
+// ESP_LOGI(TAG, "update config %s -> %d", #name, s_config.name); \
+// } \
+// } \
+// } else { \
+// ESP_LOGE(TAG, "nvs_get %s fail %d", #name, err); \
+// }
+
+void config_init() {
+#if 1
+ IP4_ADDR((ip4_addr_t *)&s_config.ip, 192, 168, 1, 10);
+ IP4_ADDR((ip4_addr_t *)&s_config.gw, 192, 168, 1, 1);
+ IP4_ADDR((ip4_addr_t *)&s_config.netmask, 255, 255, 255, 0);
+ s_config.localport = SERVICE_PORT;
+ s_config.obtaining_ip_mode = OBTAINING_IP_MODE_DHCP; // dhcp
+ s_config.mask = 1; //
+
+#endif
+
+ // esp_err_t err = nvs_flash_init();
+
+ // if (err == ESP_ERR_NVS_NO_FREE_PAGES) {
+ // ESP_ERROR_CHECK(nvs_flash_erase());
+ // err = nvs_flash_init();
+ // }
+
+ // if (err != ESP_ERR_NVS_NO_FREE_PAGES) {
+ // esp_err_t err = nvs_open("app_config", NVS_READWRITE, &s_nvs_handle);
+ // if (err == ESP_OK) {
+ // bool refresh_config = false;
+ // INIT_CONFIG(u32, ip, "ip");
+ // INIT_CONFIG(u32, gw, "gw");
+ // INIT_CONFIG(u32, netmask, "netmask");
+ // INIT_CONFIG(u32, localport, "localport");
+ // INIT_CONFIG(u32, sound_report_times, "srt");
+ // INIT_CONFIG(u32, obtaining_ip_mode, "oim");
+ // INIT_CONFIG(u32, sound_magnification_factors, "smf");
+ // } else {
+ // }
+
+ // } else {
+ // ESP_LOGE(TAG, "nvs flash init fail %d", err);
+ // }
+ // nvs_close(s_nvs_handle);
+
+ /*dumpconfig*/
+ config_dump_config();
+}
+bool config_is_first_init() { return s_is_first_init; }
+void config_dump_config() {
+ ZLOGI(TAG, "=================config================");
+ ZLOGI(TAG, "= config obtaining_ip_mode %u", s_config.obtaining_ip_mode);
+ ZLOGI(TAG, "= config ip %s", inet_ntoa(s_config.ip));
+ ZLOGI(TAG, "= config gw: %s", inet_ntoa(s_config.gw));
+ ZLOGI(TAG, "= config netmask: %s", inet_ntoa(s_config.netmask));
+ ZLOGI(TAG, "= config localport: %u", s_config.localport);
+}
+// void config_update() {
+// esp_err_t err = nvs_open("app_config", NVS_READWRITE, &s_nvs_handle);
+// if (err == ESP_OK) {
+// UPDATE_CONFIG(u32, ip, "ip");
+// UPDATE_CONFIG(u32, gw, "gw");
+// UPDATE_CONFIG(u32, netmask, "netmask");
+// UPDATE_CONFIG(u32, localport, "localport");
+// UPDATE_CONFIG(u32, sound_report_times, "srt");
+// UPDATE_CONFIG(u32, obtaining_ip_mode, "oim");
+// UPDATE_CONFIG(u32, sound_magnification_factors, "smf");
+
+// } else {
+// }
+
+// nvs_close(s_nvs_handle);
+
+// config_dump_config();
+// }
+config_t *config_get() { return &s_config; }
\ No newline at end of file
diff --git a/src/config.h b/src/config.h
new file mode 100644
index 0000000..2cd08ba
--- /dev/null
+++ b/src/config.h
@@ -0,0 +1,21 @@
+#pragma once
+#include
+#include
+typedef struct {
+
+ uint32_t mask;
+ uint32_t obtaining_ip_mode;
+
+ uint32_t ip;
+ uint32_t gw;
+ uint32_t netmask;
+ uint32_t localport;
+
+ // uint32_t
+} config_t;
+
+void config_init();
+void config_update();
+void config_dump_config();
+config_t *config_get();
+bool config_is_first_init() ;
diff --git a/src/port.c b/src/port.c
index c263553..f1776a5 100644
--- a/src/port.c
+++ b/src/port.c
@@ -5,15 +5,12 @@
#include "main.h"
// #include "modbus_processer.h"
-#include "port.h"
#include "tim.h"
#include "usart.h"
//
#include "../../../iflytop_microcontroller/sdk/stm32/pwm.h"
#include "../../../iflytop_microcontroller/sdk/stm32/stm32sdk.h"
-#include "../iflytop_microcontroller/sdk/stm32/pwm.h"
-#include "../iflytop_microcontroller/sdk/stm32/stm32sdk.h"
/**********************************************************************************************************************
* ===================================================printf重定向=================================================== *
diff --git a/src/protocol.c b/src/protocol.c
new file mode 100644
index 0000000..e69de29
diff --git a/src/protocol.h b/src/protocol.h
new file mode 100644
index 0000000..9df23ef
--- /dev/null
+++ b/src/protocol.h
@@ -0,0 +1,60 @@
+#pragma once
+#include
+#include
+#pragma pack(push, 1)
+typedef struct {
+
+ uint8_t packet_type;
+ uint8_t minus_packet_type;
+
+ uint8_t index;
+ uint8_t action_type;
+ uint32_t reg;
+
+ union {
+ uint32_t regvalue;
+ uint8_t url[200]; //这里仅仅是一个占位符
+ struct {
+ uint32_t regvalue;
+ uint32_t error;
+ } receipt;
+ } value;
+} protocol_header_t;
+#pragma pack(pop)
+
+#define PROTOCOL_HEADER 0xAA
+#define PROTOCOL_HEADER_MINUS 0x55
+
+#define PROTOCOL_PACKET_TYPE_READ 1
+#define PROTOCOL_PACKET_TYPE_WRITE 0
+
+/**
+ * @brief
+ */
+
+/**
+ * @brief REG
+ */
+#define REG_RESTART_DEVICE 0
+#define REG_REPORT_VOICE 1
+#define REG_REPORT_VOICE_REPECT_TIMES 2
+#define REG_OBTAINING_IP_MODE 3
+#define REG_STATIC_IP 4
+#define REG_IP_MASK 5
+#define REG_ROUTER_IP 6
+#define REG_SOUND_AMPLIFY_FACTOR 10
+
+#define REG_INTER_OTA_BY_HTTP 102
+
+#define OBTAINING_IP_MODE_DHCP 0
+#define OBTAINING_IP_MODE_STATIC 1
+
+/**
+ * @brief ERRORCODE
+ * 错误码在遇到位置错误时,直接将ESP32返回的错误上报给上位机
+ */
+
+#define ERROR_CODE_SUCCESS 0
+#define ERROR_CODE_PACKET_PARAMETER_ERROR 7301
+// #define ERROR_CODE_SUM_CHECK_ERROR 7301
+// #define ERROR_CODE_PACKET_PATTERN_ERROR 7301
\ No newline at end of file
diff --git a/src/usermain.c b/src/usermain.c
index 737c488..7dd4b0f 100644
--- a/src/usermain.c
+++ b/src/usermain.c
@@ -4,13 +4,22 @@
#include
#include "cmsis_os.h"
+#include "config.h"
#include "iwdg.h"
#include "lwip.h"
#include "main.h"
#include "port.h"
#include "usart.h"
+#include "zboard.h"
+//
+#include "iflytop_microcontroller/sdk/stm32/stm32sdk.h"
+
+#define TAG "USER_MAIN"
void user_main() {
+ ZLOGI(TAG, "==============ethernet_sound_acquisition_card=============");
+ ZLOGI(TAG, "version %d.%d", VERSION_MAIN_ID, VERSION_SUB_ID);
+ config_init();
while (1) {
port_do_debug_light_state();
HAL_IWDG_Refresh(&hiwdg);
diff --git a/src/zboard.h b/src/zboard.h
index 91bb3bb..1298e4e 100644
--- a/src/zboard.h
+++ b/src/zboard.h
@@ -36,3 +36,6 @@
#define FAN1_FB_GPIO_PORT GPIOA
#define FAN1_FB_PIN GPIO_PIN_8
+
+// 网络端口配置
+#define SERVICE_PORT 9973