From e66278cd8996ff65d905589aec2973baf1ffd31f Mon Sep 17 00:00:00 2001 From: zhaohe <1013909206@qq.com> Date: Tue, 26 Apr 2022 15:51:07 +0800 Subject: [PATCH] update --- MDK-ARM/FilterBox.uvguix.zel | 2 +- README.md | 48 ++ .../README.assets/image-20220426152732527.png | Bin 0 -> 15255 bytes .../README.assets/image-20220426153200062.png | Bin 0 -> 11807 bytes release/filterBox_stm32f103_v1.3.hex | 787 +++++++++++++++++++++ 5 files changed, 836 insertions(+), 1 deletion(-) create mode 100644 markdown.assets/README.assets/image-20220426152732527.png create mode 100644 markdown.assets/README.assets/image-20220426153200062.png create mode 100644 release/filterBox_stm32f103_v1.3.hex diff --git a/MDK-ARM/FilterBox.uvguix.zel b/MDK-ARM/FilterBox.uvguix.zel index 8841473..b52a8d6 100644 --- a/MDK-ARM/FilterBox.uvguix.zel +++ b/MDK-ARM/FilterBox.uvguix.zel @@ -1838,7 +1838,7 @@ Debug 2373 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 diff --git a/README.md b/README.md index 34d9e67..d7523c6 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ v1.3 修改部分打印信息 + ``` [filterBox_stm32f103_v1.3.zip](./release/filterBox_stm32f103_v1.3.zip) @@ -51,3 +52,50 @@ AT+IO_MIRROR? ### 2.3保存配置到FLASH中 AT+SAVE + + + +## 三.当前程序不足的地方 + +### 问题一 + +例如下面波形,假如每个脉冲的宽度都小于1000us,那么理论上来说,我滤波时间设置1ms就能够正确滤波。但现在的代码做不到这一点。现在代码的逻辑如下,按照现在逻辑,如果时刻1检测到高电平,等待1ms后,时刻2依然可能检测到高电平。 + +``` + 1.电平发生变化, + 2.等待, + 3.查看电平是否发生变化 +``` + +![image-20220426153200062](markdown.assets/README.assets/image-20220426153200062.png) + +理想的代码逻辑,应该写一个简单的低通滤波器,计算的电平持续时间,如果电平持续超过1ms(用户可设置),就改变电平。且要以尽可能高的采样频率去采样电平,逻辑大致如下 + +```c + + bool lastinput = false; + while(true){ + //对电平进行计数 + bool nowinput = input(); + + if(nowinput!=lastinput){ + input_state_count = 0; + }else{ + if(input_state_count 用户设定值){ + output = nowinput; + } + } +``` + +### 问题二 + +``` +现在代码中用的HAL_Delay,HAL_Delay使用的是1ms的系统ticket进行的延时,所以当延时时间会存在1ms的误差。 +``` + diff --git a/markdown.assets/README.assets/image-20220426152732527.png b/markdown.assets/README.assets/image-20220426152732527.png new file mode 100644 index 0000000000000000000000000000000000000000..6270388e9f8c7a97fed75b83737a3e10179541ac GIT binary patch literal 15255 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%0A~V=xzgtDDwITkl>NY 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 HBJ}?O%;g24 literal 0 HcmV?d00001 diff --git a/markdown.assets/README.assets/image-20220426153200062.png b/markdown.assets/README.assets/image-20220426153200062.png new file mode 100644 index 0000000000000000000000000000000000000000..25e906cc58ac3605fb8043d3a52b6514634935c1 GIT binary patch literal 11807 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