From cb0216ee3ad21c6a3b2340d77997c8ff2eeda986 Mon Sep 17 00:00:00 2001 From: zhaohe <1013909206@qq.com> Date: Sat, 13 Nov 2021 22:18:40 +0800 Subject: [PATCH] v1.2 --- .mxproject | 39 +++++++++++++++++++++------------------ Core/Src/iwdg.c | 4 ++-- Core/Src/main.c | 2 +- MDK-ARM/WaveBox.uvguix.zel | 28 ++++++++++++++-------------- MDK-ARM/WaveBox.uvprojx | 2 +- MDK-ARM/startup_stm32f429xx.lst | 10 +++++----- README.md | 4 +++- WaveBox.ioc | 3 +++ release/wavebox_v1.2.zip | Bin 0 -> 19959 bytes usec/user_main.c | 3 +++ 10 files changed, 53 insertions(+), 42 deletions(-) create mode 100644 release/wavebox_v1.2.zip diff --git a/.mxproject b/.mxproject index 6f74a35..1aa5d5e 100644 --- a/.mxproject +++ b/.mxproject @@ -6,30 +6,33 @@ SourceFiles=..\Core\Src\main.c;..\Core\Src\gpio.c;..\Core\Src\dma.c;..\Core\Src\ HeaderPath=..\Drivers\STM32F4xx_HAL_Driver\Inc;..\Drivers\STM32F4xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32F4xx\Include;..\Drivers\CMSIS\Include;..\Core\Inc; CDefines=USE_HAL_DRIVER;STM32F429xx;USE_HAL_DRIVER;USE_HAL_DRIVER; +[] +SourceFiles=;; + [PreviousGenFiles] AdvancedFolderStructure=true HeaderFileListSize=8 -HeaderFiles#0=C:/Users/zel/Desktop/WaveBox/Core/Inc/gpio.h -HeaderFiles#1=C:/Users/zel/Desktop/WaveBox/Core/Inc/dma.h -HeaderFiles#2=C:/Users/zel/Desktop/WaveBox/Core/Inc/iwdg.h -HeaderFiles#3=C:/Users/zel/Desktop/WaveBox/Core/Inc/tim.h -HeaderFiles#4=C:/Users/zel/Desktop/WaveBox/Core/Inc/usart.h -HeaderFiles#5=C:/Users/zel/Desktop/WaveBox/Core/Inc/stm32f4xx_it.h -HeaderFiles#6=C:/Users/zel/Desktop/WaveBox/Core/Inc/stm32f4xx_hal_conf.h -HeaderFiles#7=C:/Users/zel/Desktop/WaveBox/Core/Inc/main.h +HeaderFiles#0=F:/workspace/sync_wave_box/Core/Inc/gpio.h +HeaderFiles#1=F:/workspace/sync_wave_box/Core/Inc/dma.h +HeaderFiles#2=F:/workspace/sync_wave_box/Core/Inc/iwdg.h +HeaderFiles#3=F:/workspace/sync_wave_box/Core/Inc/tim.h +HeaderFiles#4=F:/workspace/sync_wave_box/Core/Inc/usart.h +HeaderFiles#5=F:/workspace/sync_wave_box/Core/Inc/stm32f4xx_it.h +HeaderFiles#6=F:/workspace/sync_wave_box/Core/Inc/stm32f4xx_hal_conf.h +HeaderFiles#7=F:/workspace/sync_wave_box/Core/Inc/main.h HeaderFolderListSize=1 -HeaderPath#0=C:/Users/zel/Desktop/WaveBox/Core/Inc +HeaderPath#0=F:/workspace/sync_wave_box/Core/Inc HeaderFiles=; SourceFileListSize=8 -SourceFiles#0=C:/Users/zel/Desktop/WaveBox/Core/Src/gpio.c -SourceFiles#1=C:/Users/zel/Desktop/WaveBox/Core/Src/dma.c -SourceFiles#2=C:/Users/zel/Desktop/WaveBox/Core/Src/iwdg.c -SourceFiles#3=C:/Users/zel/Desktop/WaveBox/Core/Src/tim.c -SourceFiles#4=C:/Users/zel/Desktop/WaveBox/Core/Src/usart.c -SourceFiles#5=C:/Users/zel/Desktop/WaveBox/Core/Src/stm32f4xx_it.c -SourceFiles#6=C:/Users/zel/Desktop/WaveBox/Core/Src/stm32f4xx_hal_msp.c -SourceFiles#7=C:/Users/zel/Desktop/WaveBox/Core/Src/main.c +SourceFiles#0=F:/workspace/sync_wave_box/Core/Src/gpio.c +SourceFiles#1=F:/workspace/sync_wave_box/Core/Src/dma.c +SourceFiles#2=F:/workspace/sync_wave_box/Core/Src/iwdg.c +SourceFiles#3=F:/workspace/sync_wave_box/Core/Src/tim.c +SourceFiles#4=F:/workspace/sync_wave_box/Core/Src/usart.c +SourceFiles#5=F:/workspace/sync_wave_box/Core/Src/stm32f4xx_it.c +SourceFiles#6=F:/workspace/sync_wave_box/Core/Src/stm32f4xx_hal_msp.c +SourceFiles#7=F:/workspace/sync_wave_box/Core/Src/main.c SourceFolderListSize=1 -SourcePath#0=C:/Users/zel/Desktop/WaveBox/Core/Src +SourcePath#0=F:/workspace/sync_wave_box/Core/Src SourceFiles=; diff --git a/Core/Src/iwdg.c b/Core/Src/iwdg.c index 99c5637..c8bf65d 100644 --- a/Core/Src/iwdg.c +++ b/Core/Src/iwdg.c @@ -31,8 +31,8 @@ void MX_IWDG_Init(void) { hiwdg.Instance = IWDG; - hiwdg.Init.Prescaler = IWDG_PRESCALER_4; - hiwdg.Init.Reload = 4095; + hiwdg.Init.Prescaler = IWDG_PRESCALER_256; + hiwdg.Init.Reload = 1000; if (HAL_IWDG_Init(&hiwdg) != HAL_OK) { Error_Handler(); diff --git a/Core/Src/main.c b/Core/Src/main.c index 9db9872..0558907 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -91,7 +91,7 @@ int main(void) /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_DMA_Init(); - // MX_IWDG_Init(); + MX_IWDG_Init(); MX_TIM3_Init(); MX_TIM8_Init(); MX_USART1_UART_Init(); diff --git a/MDK-ARM/WaveBox.uvguix.zel b/MDK-ARM/WaveBox.uvguix.zel index 94ae471..954ee30 100644 --- a/MDK-ARM/WaveBox.uvguix.zel +++ b/MDK-ARM/WaveBox.uvguix.zel @@ -83,17 +83,17 @@ -1 - 105 - 295 - 1730 - 774 + 129 + 388 + 1823 + 991 0 - 1412 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000D00000004000000010000004D433A5C55736572735C7A656C5C4465736B746F705C57617665426F785C447269766572735C53544D3332463478785F48414C5F4472697665725C5372635C73746D3332663478785F68616C2E63000000000F73746D3332663478785F68616C2E6300000000C5D4F200FFFFFFFF28433A5C55736572735C7A656C5C4465736B746F705C57617665426F785C757365635C706F72742E630000000006706F72742E6300000000FFDC7800FFFFFFFF52433A5C55736572735C7A656C5C4465736B746F705C57617665426F785C447269766572735C53544D3332463478785F48414C5F4472697665725C5372635C73746D3332663478785F68616C5F756172742E63000000001473746D3332663478785F68616C5F756172742E6300000000BECEA100FFFFFFFF54433A5C55736572735C7A656C5C4465736B746F705C57617665426F785C447269766572735C53544D3332463478785F48414C5F4472697665725C5372635C73746D3332663478785F68616C5F7077725F65782E63000000001673746D3332663478785F68616C5F7077725F65782E6300000000F0A0A100FFFFFFFF2D433A5C55736572735C7A656C5C4465736B746F705C57617665426F785C757365635C757365725F6D61696E2E63000000000B757365725F6D61696E2E63000000009CC1B600FFFFFFFF3A433A5C55736572735C7A656C5C4465736B746F705C57617665426F785C4D444B2D41524D5C737461727475705F73746D33326634323978782E730000000015737461727475705F73746D33326634323978782E7300000000F7B88600FFFFFFFF2C433A5C55736572735C7A656C5C4465736B746F705C57617665426F785C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000F7B88600FFFFFFFF54433A5C55736572735C7A656C5C4465736B746F705C57617665426F785C447269766572735C434D5349535C4465766963655C53545C53544D3332463478785C496E636C7564655C73746D33326634323978782E68000000000D73746D33326634323978782E6800000000D9ADC200FFFFFFFF29433A5C55736572735C7A656C5C4465736B746F705C57617665426F785C757365635C626F6172642E680000000007626F6172642E6800000000A5C2D700FFFFFFFF52433A5C55736572735C7A656C5C4465736B746F705C57617665426F785C447269766572735C53544D3332463478785F48414C5F4472697665725C5372635C73746D3332663478785F68616C5F6770696F2E63000000001473746D3332663478785F68616C5F6770696F2E6300000000BCA8E100FFFFFFFF39433A5C55736572735C7A656C5C4465736B746F705C57617665426F785C436F72655C5372635C73746D3332663478785F68616C5F6D73702E63000000001373746D3332663478785F68616C5F6D73702E6300000000F0A0A100FFFFFFFF2B433A5C55736572735C7A656C5C4465736B746F705C57617665426F785C436F72655C496E635C74696D2E68000000000574696D2E6800000000BECEA100FFFFFFFF53433A5C55736572735C7A656C5C4465736B746F705C57617665426F785C447269766572735C53544D3332463478785F48414C5F4472697665725C496E635C73746D3332663478785F68616C5F75736172742E68000000001573746D3332663478785F68616C5F75736172742E6800000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000091010000660000008007000032030000 + 1386 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000D00000004000000010000004B463A5C776F726B73706163655C73796E635F776176655F626F785C447269766572735C53544D3332463478785F48414C5F4472697665725C5372635C73746D3332663478785F68616C2E63000000000F73746D3332663478785F68616C2E6300000000C5D4F200FFFFFFFF26463A5C776F726B73706163655C73796E635F776176655F626F785C757365635C706F72742E630000000006706F72742E6300000000B5E99D00FFFFFFFF50463A5C776F726B73706163655C73796E635F776176655F626F785C447269766572735C53544D3332463478785F48414C5F4472697665725C5372635C73746D3332663478785F68616C5F756172742E63000000001473746D3332663478785F68616C5F756172742E6300000000F6FA7D00FFFFFFFF52463A5C776F726B73706163655C73796E635F776176655F626F785C447269766572735C53544D3332463478785F48414C5F4472697665725C5372635C73746D3332663478785F68616C5F7077725F65782E63000000001673746D3332663478785F68616C5F7077725F65782E6300000000EAD6A300FFFFFFFF2B463A5C776F726B73706163655C73796E635F776176655F626F785C757365635C757365725F6D61696E2E63000000000B757365725F6D61696E2E6300000000B3A6BE00FFFFFFFF38463A5C776F726B73706163655C73796E635F776176655F626F785C4D444B2D41524D5C737461727475705F73746D33326634323978782E730000000015737461727475705F73746D33326634323978782E7300000000A5C2D700FFFFFFFF2A463A5C776F726B73706163655C73796E635F776176655F626F785C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000D9ADC200FFFFFFFF52463A5C776F726B73706163655C73796E635F776176655F626F785C447269766572735C434D5349535C4465766963655C53545C53544D3332463478785C496E636C7564655C73746D33326634323978782E68000000000D73746D33326634323978782E6800000000F7B88600FFFFFFFF27463A5C776F726B73706163655C73796E635F776176655F626F785C757365635C626F6172642E680000000007626F6172642E68000000009CC1B600FFFFFFFF50463A5C776F726B73706163655C73796E635F776176655F626F785C447269766572735C53544D3332463478785F48414C5F4472697665725C5372635C73746D3332663478785F68616C5F6770696F2E63000000001473746D3332663478785F68616C5F6770696F2E6300000000BCA8E100FFFFFFFF37463A5C776F726B73706163655C73796E635F776176655F626F785C436F72655C5372635C73746D3332663478785F68616C5F6D73702E63000000001373746D3332663478785F68616C5F6D73702E6300000000F0A0A100FFFFFFFF29463A5C776F726B73706163655C73796E635F776176655F626F785C436F72655C496E635C74696D2E68000000000574696D2E6800000000BECEA100FFFFFFFF51463A5C776F726B73706163655C73796E635F776176655F626F785C447269766572735C53544D3332463478785F48414C5F4472697665725C496E635C73746D3332663478785F68616C5F75736172742E68000000001573746D3332663478785F68616C5F75736172742E6800000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000091010000660000008007000032030000 @@ -2589,7 +2589,7 @@ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c 0 - 316 + 319 325 1 @@ -2607,7 +2607,7 @@ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c 0 - 2682 + 2685 2707 1 @@ -2624,9 +2624,9 @@ ..\usec\user_main.c - 0 - 193 - 239 + 19 + 39 + 73 1 0 @@ -2634,7 +2634,7 @@ startup_stm32f429xx.s 0 - 174 + 176 183 1 @@ -2652,7 +2652,7 @@ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f429xx.h 18 - 1118 + 1119 1120 1 @@ -2688,7 +2688,7 @@ ../Core/Inc/tim.h 0 - 7 + 10 33 1 diff --git a/MDK-ARM/WaveBox.uvprojx b/MDK-ARM/WaveBox.uvprojx index 22c2823..e43a215 100644 --- a/MDK-ARM/WaveBox.uvprojx +++ b/MDK-ARM/WaveBox.uvprojx @@ -365,7 +365,7 @@ --diag_suppress=381 --diag_suppress=1 --diag_suppress=177 --diag_suppress=111 --diag_suppress=1295 USE_HAL_DRIVER,STM32F429xx - ../Core/Inc; ../Drivers/STM32F4xx_HAL_Driver/Inc; ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy; ../Drivers/CMSIS/Device/ST/STM32F4xx/Include; ../Drivers/CMSIS/Include + ../Core/Inc; ../Drivers/STM32F4xx_HAL_Driver/Inc; ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy; ../Drivers/CMSIS/Device/ST/STM32F4xx/Include; ../Drivers/CMSIS/Include diff --git a/MDK-ARM/startup_stm32f429xx.lst b/MDK-ARM/startup_stm32f429xx.lst index 18543fd..0d20963 100644 --- a/MDK-ARM/startup_stm32f429xx.lst +++ b/MDK-ARM/startup_stm32f429xx.lst @@ -875,11 +875,11 @@ ARM Macro Assembler Page 14 00000000 Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M4.fp --apcs=int erwork --depend=wavebox\startup_stm32f429xx.d -owavebox\startup_stm32f429xx.o - -IC:\Users\zel\Desktop\WaveBox\MDK-ARM\RTE -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.4.0 -\CMSIS\Core\Include -IC:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\2.13.0 --predefine -="__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 514" --predefine="_RTE -_ SETA 1" --predefine="STM32F429xx SETA 1" --list=startup_stm32f429xx.lst start -up_stm32f429xx.s +IF:\workspace\sync_wave_box\MDK-ARM\RTE -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.4.0\C +MSIS\Core\Include -IC:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\2.13.0 --predefine=" +__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 514" --predefine="_RTE_ +SETA 1" --predefine="STM32F429xx SETA 1" --list=startup_stm32f429xx.lst startup +_stm32f429xx.s diff --git a/README.md b/README.md index 1aa13d2..5995e65 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,9 @@ TODO: 如果低电平时间小于3us,会出现多触发一个脉冲的问题。 - + v1.2 + 1.添加看门狗 + 2.修复串口发送错误字符后,串口不好使的BUG ``` diff --git a/WaveBox.ioc b/WaveBox.ioc index 5562cf5..919f9ce 100644 --- a/WaveBox.ioc +++ b/WaveBox.ioc @@ -46,6 +46,9 @@ Dma.TIM8_UP.1.Priority=DMA_PRIORITY_LOW Dma.TIM8_UP.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode File.Version=6 GPIO.groupedBy= +IWDG.IPParameters=Prescaler,Reload +IWDG.Prescaler=IWDG_PRESCALER_256 +IWDG.Reload=1000 KeepUserPlacement=false Mcu.Family=STM32F4 Mcu.IP0=DMA diff --git a/release/wavebox_v1.2.zip b/release/wavebox_v1.2.zip new file mode 100644 index 0000000000000000000000000000000000000000..b2c2a34fbd99323e3cb78f0f15bd9daee5d455d3 GIT binary patch literal 19959 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 N0?Y+~z1xKg{{!)pT;%`& literal 0 HcmV?d00001 diff --git a/usec/user_main.c b/usec/user_main.c index 23a2359..7278c9b 100644 --- a/usec/user_main.c +++ b/usec/user_main.c @@ -15,6 +15,7 @@ #include "stm32f429xx.h" #include "stm32f4xx_hal_tim.h" #include "stm32f4xx_hal_usart.h" +#include "iwdg.h" /** * @brief 初始化所有IO状态 @@ -71,6 +72,7 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { */ if (!s_rxbuf_is_ready) { if (s_order_rxbuf == 'S') { + s_rxbuf_has_received = 0; s_rxbuf[s_rxbuf_has_received] = s_order_rxbuf; s_rxbuf_has_received++; } else if (s_rxbuf_has_received != 0) { @@ -243,6 +245,7 @@ void user_main() { /** * @brief 处理接收到的数据 */ + HAL_IWDG_Refresh(&hiwdg); #if 1 if (s_rxbuf_is_ready) { process_rxbuf();