diff --git a/leakage_system/.mxproject b/leakage_system/.mxproject index 5566f46..e7b98ef 100644 --- a/leakage_system/.mxproject +++ b/leakage_system/.mxproject @@ -1,32 +1,34 @@ [PreviousLibFiles] -LibFiles=Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_spi.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_bus.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_rcc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_system.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_utils.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ramfunc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_gpio.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_dma.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_dmamux.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_pwr.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_cortex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_cortex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h;Drivers\STM32F4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_def.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_exti.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_exti.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_usart.h;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_spi.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_bus.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_rcc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_system.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_utils.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ramfunc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_gpio.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_dma.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_dmamux.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_pwr.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_cortex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_cortex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h;Drivers\STM32F4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_def.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_exti.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_exti.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_usart.h;Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f407xx.h;Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h;Drivers\CMSIS\Device\ST\STM32F4xx\Include\system_stm32f4xx.h;Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c;Drivers\CMSIS\Include\cmsis_armcc.h;Drivers\CMSIS\Include\cmsis_armclang.h;Drivers\CMSIS\Include\cmsis_compiler.h;Drivers\CMSIS\Include\cmsis_gcc.h;Drivers\CMSIS\Include\cmsis_iccarm.h;Drivers\CMSIS\Include\cmsis_version.h;Drivers\CMSIS\Include\core_armv8mbl.h;Drivers\CMSIS\Include\core_armv8mml.h;Drivers\CMSIS\Include\core_cm0.h;Drivers\CMSIS\Include\core_cm0plus.h;Drivers\CMSIS\Include\core_cm1.h;Drivers\CMSIS\Include\core_cm23.h;Drivers\CMSIS\Include\core_cm3.h;Drivers\CMSIS\Include\core_cm33.h;Drivers\CMSIS\Include\core_cm4.h;Drivers\CMSIS\Include\core_cm7.h;Drivers\CMSIS\Include\core_sc000.h;Drivers\CMSIS\Include\core_sc300.h;Drivers\CMSIS\Include\mpu_armv7.h;Drivers\CMSIS\Include\mpu_armv8.h;Drivers\CMSIS\Include\tz_context.h; +LibFiles=Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_iwdg.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_bus.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_rcc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_system.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_utils.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ramfunc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_gpio.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_dma.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_dmamux.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_pwr.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_cortex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_cortex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h;Drivers\STM32F4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_def.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_exti.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_exti.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_spi.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_usart.h;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_iwdg.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_iwdg.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_bus.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_rcc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_system.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_utils.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ramfunc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_gpio.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_dma.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_dmamux.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_pwr.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_cortex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_cortex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h;Drivers\STM32F4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_def.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_exti.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_exti.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_spi.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_usart.h;Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f407xx.h;Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h;Drivers\CMSIS\Device\ST\STM32F4xx\Include\system_stm32f4xx.h;Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c;Drivers\CMSIS\Include\cmsis_armcc.h;Drivers\CMSIS\Include\cmsis_armclang.h;Drivers\CMSIS\Include\cmsis_compiler.h;Drivers\CMSIS\Include\cmsis_gcc.h;Drivers\CMSIS\Include\cmsis_iccarm.h;Drivers\CMSIS\Include\cmsis_version.h;Drivers\CMSIS\Include\core_armv8mbl.h;Drivers\CMSIS\Include\core_armv8mml.h;Drivers\CMSIS\Include\core_cm0.h;Drivers\CMSIS\Include\core_cm0plus.h;Drivers\CMSIS\Include\core_cm1.h;Drivers\CMSIS\Include\core_cm23.h;Drivers\CMSIS\Include\core_cm3.h;Drivers\CMSIS\Include\core_cm33.h;Drivers\CMSIS\Include\core_cm4.h;Drivers\CMSIS\Include\core_cm7.h;Drivers\CMSIS\Include\core_sc000.h;Drivers\CMSIS\Include\core_sc300.h;Drivers\CMSIS\Include\mpu_armv7.h;Drivers\CMSIS\Include\mpu_armv8.h;Drivers\CMSIS\Include\tz_context.h; [PreviousUsedKeilFiles] -SourceFiles=..\Core\Src\main.c;..\Core\Src\gpio.c;..\Core\Src\dma.c;..\Core\Src\spi.c;..\Core\Src\usart.c;..\Core\Src\stm32f4xx_it.c;..\Core\Src\stm32f4xx_hal_msp.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c;..\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c;..\Core\Src\system_stm32f4xx.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c;..\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c;..\Core\Src\system_stm32f4xx.c;;; +SourceFiles=..\Core\Src\main.c;..\Core\Src\gpio.c;..\Core\Src\dma.c;..\Core\Src\iwdg.c;..\Core\Src\spi.c;..\Core\Src\usart.c;..\Core\Src\stm32f4xx_it.c;..\Core\Src\stm32f4xx_hal_msp.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_iwdg.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c;..\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c;..\Core\Src\system_stm32f4xx.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_iwdg.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c;..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c;..\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c;..\Core\Src\system_stm32f4xx.c;;; 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;STM32F407xx;USE_HAL_DRIVER;USE_HAL_DRIVER; [PreviousGenFiles] AdvancedFolderStructure=true -HeaderFileListSize=7 +HeaderFileListSize=8 HeaderFiles#0=..\Core\Inc\gpio.h HeaderFiles#1=..\Core\Inc\dma.h -HeaderFiles#2=..\Core\Inc\spi.h -HeaderFiles#3=..\Core\Inc\usart.h -HeaderFiles#4=..\Core\Inc\stm32f4xx_it.h -HeaderFiles#5=..\Core\Inc\stm32f4xx_hal_conf.h -HeaderFiles#6=..\Core\Inc\main.h +HeaderFiles#2=..\Core\Inc\iwdg.h +HeaderFiles#3=..\Core\Inc\spi.h +HeaderFiles#4=..\Core\Inc\usart.h +HeaderFiles#5=..\Core\Inc\stm32f4xx_it.h +HeaderFiles#6=..\Core\Inc\stm32f4xx_hal_conf.h +HeaderFiles#7=..\Core\Inc\main.h HeaderFolderListSize=1 HeaderPath#0=..\Core\Inc HeaderFiles=; -SourceFileListSize=7 +SourceFileListSize=8 SourceFiles#0=..\Core\Src\gpio.c SourceFiles#1=..\Core\Src\dma.c -SourceFiles#2=..\Core\Src\spi.c -SourceFiles#3=..\Core\Src\usart.c -SourceFiles#4=..\Core\Src\stm32f4xx_it.c -SourceFiles#5=..\Core\Src\stm32f4xx_hal_msp.c -SourceFiles#6=..\Core\Src\main.c +SourceFiles#2=..\Core\Src\iwdg.c +SourceFiles#3=..\Core\Src\spi.c +SourceFiles#4=..\Core\Src\usart.c +SourceFiles#5=..\Core\Src\stm32f4xx_it.c +SourceFiles#6=..\Core\Src\stm32f4xx_hal_msp.c +SourceFiles#7=..\Core\Src\main.c SourceFolderListSize=1 SourcePath#0=..\Core\Src SourceFiles=; diff --git a/leakage_system/Core/Inc/stm32f4xx_hal_conf.h b/leakage_system/Core/Inc/stm32f4xx_hal_conf.h index 21aec74..b304993 100644 --- a/leakage_system/Core/Inc/stm32f4xx_hal_conf.h +++ b/leakage_system/Core/Inc/stm32f4xx_hal_conf.h @@ -55,7 +55,7 @@ /* #define HAL_HASH_MODULE_ENABLED */ /* #define HAL_I2C_MODULE_ENABLED */ /* #define HAL_I2S_MODULE_ENABLED */ -/* #define HAL_IWDG_MODULE_ENABLED */ +#define HAL_IWDG_MODULE_ENABLED /* #define HAL_LTDC_MODULE_ENABLED */ /* #define HAL_RNG_MODULE_ENABLED */ /* #define HAL_RTC_MODULE_ENABLED */ diff --git a/leakage_system/Core/Src/main.c b/leakage_system/Core/Src/main.c index 37094fb..20d6b41 100644 --- a/leakage_system/Core/Src/main.c +++ b/leakage_system/Core/Src/main.c @@ -19,6 +19,7 @@ /* Includes ------------------------------------------------------------------*/ #include "main.h" #include "dma.h" +#include "iwdg.h" #include "spi.h" #include "usart.h" #include "gpio.h" @@ -73,7 +74,7 @@ int main(void) /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ - HAL_Init(); + HAL_Init(); /* USER CODE BEGIN Init */ @@ -96,6 +97,7 @@ int main(void) MX_SPI2_Init(); MX_USART3_UART_Init(); MX_USART6_UART_Init(); +// MX_IWDG_Init(); /* USER CODE BEGIN 2 */ app_init(); //HAL_GPIO_WritePin(JK1_GPIO_Port,JK1_Pin,GPIO_PIN_SET); @@ -130,8 +132,9 @@ void SystemClock_Config(void) /** Initializes the RCC Oscillators according to the specified parameters * in the RCC_OscInitTypeDef structure. */ - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; + RCC_OscInitStruct.LSIState = RCC_LSI_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLM = 4; diff --git a/leakage_system/MDK-ARM/leakage_system.uvprojx b/leakage_system/MDK-ARM/leakage_system.uvprojx index 1c6f363..dedb49c 100644 --- a/leakage_system/MDK-ARM/leakage_system.uvprojx +++ b/leakage_system/MDK-ARM/leakage_system.uvprojx @@ -407,6 +407,62 @@ 1 ../Core/Src/dma.c + + iwdg.c + 1 + ../Core/Src/iwdg.c + + + 2 + 0 + 0 + 0 + 0 + 1 + 2 + 2 + 2 + 2 + 11 + + + 1 + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + spi.c 1 @@ -484,9 +540,9 @@ Drivers/STM32F4xx_HAL_Driver - stm32f4xx_hal_spi.c + stm32f4xx_hal_iwdg.c 1 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c + ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.c 2 @@ -604,6 +660,62 @@ 1 ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c + + stm32f4xx_hal_spi.c + 1 + ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c + + + 2 + 0 + 0 + 0 + 0 + 1 + 2 + 2 + 2 + 2 + 11 + + + 1 + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + stm32f4xx_hal_tim.c 1 diff --git a/leakage_system/MDK-ARM/startup_stm32f407xx.s b/leakage_system/MDK-ARM/startup_stm32f407xx.s index 91c9046..b0722a1 100644 --- a/leakage_system/MDK-ARM/startup_stm32f407xx.s +++ b/leakage_system/MDK-ARM/startup_stm32f407xx.s @@ -29,7 +29,7 @@ ; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> ; -Stack_Size EQU 0x800 +Stack_Size EQU 0x400 AREA STACK, NOINIT, READWRITE, ALIGN=3 Stack_Mem SPACE Stack_Size @@ -40,7 +40,7 @@ __initial_sp ; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> ; -Heap_Size EQU 0x400 +Heap_Size EQU 0x200 AREA HEAP, NOINIT, READWRITE, ALIGN=3 __heap_base diff --git a/leakage_system/leakage_system.ioc b/leakage_system/leakage_system.ioc index 9624d6e..32010dd 100644 --- a/leakage_system/leakage_system.ioc +++ b/leakage_system/leakage_system.ioc @@ -115,21 +115,25 @@ Dma.USART6_TX.9.Priority=DMA_PRIORITY_LOW Dma.USART6_TX.9.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode File.Version=6 GPIO.groupedBy=Group By Peripherals +IWDG.IPParameters=Reload,Prescaler +IWDG.Prescaler=IWDG_PRESCALER_128 +IWDG.Reload=750 KeepUserPlacement=false Mcu.CPN=STM32F407VGT6 Mcu.Family=STM32F4 Mcu.IP0=DMA -Mcu.IP1=NVIC -Mcu.IP10=USART6 -Mcu.IP2=RCC -Mcu.IP3=SPI1 -Mcu.IP4=SPI2 -Mcu.IP5=SYS -Mcu.IP6=UART4 -Mcu.IP7=USART1 -Mcu.IP8=USART2 -Mcu.IP9=USART3 -Mcu.IPNb=11 +Mcu.IP1=IWDG +Mcu.IP10=USART3 +Mcu.IP11=USART6 +Mcu.IP2=NVIC +Mcu.IP3=RCC +Mcu.IP4=SPI1 +Mcu.IP5=SPI2 +Mcu.IP6=SYS +Mcu.IP7=UART4 +Mcu.IP8=USART1 +Mcu.IP9=USART2 +Mcu.IPNb=12 Mcu.Name=STM32F407V(E-G)Tx Mcu.Package=LQFP100 Mcu.Pin0=PH0-OSC_IN @@ -164,14 +168,15 @@ Mcu.Pin34=PB5 Mcu.Pin35=PB6 Mcu.Pin36=PB7 Mcu.Pin37=PB8 -Mcu.Pin38=VP_SYS_VS_Systick +Mcu.Pin38=VP_IWDG_VS_IWDG +Mcu.Pin39=VP_SYS_VS_Systick Mcu.Pin4=PA2 Mcu.Pin5=PA3 Mcu.Pin6=PA5 Mcu.Pin7=PA6 Mcu.Pin8=PA7 Mcu.Pin9=PC4 -Mcu.PinsNb=39 +Mcu.PinsNb=40 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32F407VGTx @@ -366,7 +371,7 @@ ProjectManager.ToolChainLocation= ProjectManager.UAScriptAfterPath= ProjectManager.UAScriptBeforePath= ProjectManager.UnderRoot=false -ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_UART4_Init-UART4-false-HAL-true,5-MX_USART1_UART_Init-USART1-false-HAL-true,6-MX_USART2_UART_Init-USART2-false-HAL-true,7-MX_SPI1_Init-SPI1-false-HAL-true,8-MX_SPI2_Init-SPI2-false-HAL-true,9-MX_USART3_UART_Init-USART3-false-HAL-true,10-MX_USART6_UART_Init-USART6-false-HAL-true +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_UART4_Init-UART4-false-HAL-true,5-MX_USART1_UART_Init-USART1-false-HAL-true,6-MX_USART2_UART_Init-USART2-false-HAL-true,7-MX_SPI1_Init-SPI1-false-HAL-true,8-MX_SPI2_Init-SPI2-false-HAL-true,9-MX_USART3_UART_Init-USART3-false-HAL-true,10-MX_USART6_UART_Init-USART6-false-HAL-true,11-MX_IWDG_Init-IWDG-false-HAL-true RCC.48MHZClocksFreq_Value=84000000 RCC.AHBFreq_Value=168000000 RCC.APB1CLKDivider=RCC_HCLK_DIV4 @@ -423,6 +428,8 @@ USART3.IPParameters=VirtualMode USART3.VirtualMode=VM_ASYNC USART6.IPParameters=VirtualMode USART6.VirtualMode=VM_ASYNC +VP_IWDG_VS_IWDG.Mode=IWDG_Activate +VP_IWDG_VS_IWDG.Signal=IWDG_VS_IWDG VP_SYS_VS_Systick.Mode=SysTick VP_SYS_VS_Systick.Signal=SYS_VS_Systick board=custom diff --git a/leakage_system/usr/app/app.c b/leakage_system/usr/app/app.c index 4fddc85..a970633 100644 --- a/leakage_system/usr/app/app.c +++ b/leakage_system/usr/app/app.c @@ -57,6 +57,7 @@ app_timer_class_t app_timer_task[] = ******************************************/ void app_init(void) { +// Wdg.Init(); /*flash*/ w25q32.init(); @@ -72,6 +73,8 @@ void app_init(void) /*网口*/ W5500.Init(); + + /*屏幕通讯*/ tjc_hmi.init(); @@ -89,7 +92,6 @@ void app_init(void) relay.init(); buzzer.init(); led.init(); - leakage.init(); /*com口绑定*/ app_com.init(); @@ -97,8 +99,7 @@ void app_init(void) /*分时复用,时间片轮询*/ app_timer.init(APP_TIMER_TASK_NUM,app_timer_task); - - //Wdg.Init(); + } /****************************************** @@ -112,7 +113,7 @@ void app_task(void) { app_timer.task(); task_idle(); - W5500.Task(); +// W5500.Task(); } /*空闲执行的函数*/ void task_idle(void) @@ -123,6 +124,7 @@ void task_idle(void) com_uart4.rx_task(&com_uart4); com_uart6.rx_task(&com_uart6); W5500.Task(); +// Wdg.Feed(); } void task_10ms(void) @@ -160,6 +162,7 @@ void task_1s(void) DS1302.Task(); buzzer.task(); relay.task(); + W5500.Monitor_task(); } void task_2s(void) diff --git a/leakage_system/usr/app/app_leakage.c b/leakage_system/usr/app/app_leakage.c index 71e914d..14113e3 100644 --- a/leakage_system/usr/app/app_leakage.c +++ b/leakage_system/usr/app/app_leakage.c @@ -163,7 +163,7 @@ void app_leakage_task(void) } /* 检查设备是否屏蔽 */ - if(p_leakage->sub_device_data[sub_device_index].flash_data.shield != UNBLOCKED) + if(p_leakage->sub_device_data[sub_device_index].shield != UNBLOCKED) { continue; } diff --git a/leakage_system/usr/app/app_leakage.h b/leakage_system/usr/app/app_leakage.h index 1fc04fa..5c7a89b 100644 --- a/leakage_system/usr/app/app_leakage.h +++ b/leakage_system/usr/app/app_leakage.h @@ -27,8 +27,7 @@ typedef struct { u8 state; /*状态 使能 非使能*/ u8 com; /*端口*/ - u8 baudrate; /*波特率*/ - u8 shield; /*设备屏蔽状态*/ + u8 baudrate; /*波特率*/ u8 modbus_id; /*modbus id*/ u8 device_name[APP_LEAKAGE_STRING_NANE_LEN]; /*设备名*/ u8 region_name[APP_LEAKAGE_STRING_NANE_LEN]; /*区域名*/ @@ -45,6 +44,7 @@ typedef struct }ch_data[APP_LEAKAGE_SUB_DEVICE_CH_NUM]; /*通道数据*/ u8 heartbeat; /*心跳包,0-59循环*/ u8 test_mode; /*测试模式,0=正常,1-4=测试对应通道*/ + u8 shield; /*设备屏蔽状态*/ }app_leakage_sub_device_class_t; @@ -59,6 +59,14 @@ typedef struct u8 sub_device_index[APP_LEAKAGE_SUB_DEVICE_NUM]; /*设备的索引*/ }app_leakage_region_data_class_t; +/* 网络配置结构体 */ +typedef struct { + u8 ip[4]; + u8 mask[4]; + u8 gateway[4]; + u16 port; +}network_config_t; + /* 历史报警记录结构 */ typedef struct { diff --git a/leakage_system/usr/bsp/bsp_W5500.c b/leakage_system/usr/bsp/bsp_W5500.c index be099e7..0cacac4 100644 --- a/leakage_system/usr/bsp/bsp_W5500.c +++ b/leakage_system/usr/bsp/bsp_W5500.c @@ -20,10 +20,13 @@ #define BSP_W5500_PORT_DATA_RECEIVE 0x01 /*端口接收到一个数据包*/ #define BSP_W5500_PORT_DATA_TRANSMITOK 0x02 /*端口发送一个数据包完成*/ +static u8 last_link_status = 0; // 保存上一次链路状态 + static void bsp_W5500_Interrupt_Process(void); static void bsp_W5500_Init(void); static void bsp_W5500_Task(void); static void Write_SOCK_Data_Buffer(bsp_W5500_Class_t *pW5500_Class, u8 *dat_ptr, u16 size); +static void network_monitor_task(void); bsp_W5500_t W5500 = { @@ -36,6 +39,7 @@ bsp_W5500_t W5500 = .Init = bsp_W5500_Init, .Task = bsp_W5500_Task, + .Monitor_task = network_monitor_task, .Socket_Send = Write_SOCK_Data_Buffer, .W5500_Class[0] = @@ -741,7 +745,7 @@ void bsp_W5500_Socket_Set(bsp_W5500_Class_t *pW5500_Class) static void bsp_W5500_Init() { - u8 i; + u8 i,ver; W5500_Hardware_Reset(); /*硬件复位W5500*/ W5500_Init(); /*初始化W5500寄存器函数*/ Detect_Gateway(); /*检查网关服务器*/ @@ -751,7 +755,9 @@ static void bsp_W5500_Init() bsp_W5500_Socket_Init(&pW5500->W5500_Class[i]); pW5500->W5500_Class[i].Run_State = 0; /*复位状态*/ //bsp_W5500_Socket_Set(&pW5500->W5500_Class[i]); /*W5500端口初始化配置*/ - } + } + + } static void bsp_W5500_Task(void) @@ -781,3 +787,25 @@ static void bsp_W5500_Task(void) } } +/** + * @brief 获取 W5500 物理链路状态 + * @return 1: 链路连接, 0: 链路断开 + */ +static u8 w5500_get_link_status(void) +{ + u8 phycfgr = Read_W5500_1Byte(PHYCFGR); // 读取 PHYCFGR 寄存器 + return (phycfgr & LINK) ? 1 : 0; // 返回 LINK 位 +} + + +static void network_monitor_task(void) +{ + u8 current_link = w5500_get_link_status(); + + if (last_link_status == 0 && current_link == 1) { + /*链路从断开变为连接,执行恢复操作*/ + W5500.Init(); + } + + last_link_status = current_link; +} diff --git a/leakage_system/usr/bsp/bsp_W5500.h b/leakage_system/usr/bsp/bsp_W5500.h index 6f0d249..497e1d1 100644 --- a/leakage_system/usr/bsp/bsp_W5500.h +++ b/leakage_system/usr/bsp/bsp_W5500.h @@ -261,6 +261,7 @@ typedef struct void (*Interrupt_Process)(void); /*处理进程*/ void (*Init)(void); /*初始化*/ void (*Task)(void); /*任务*/ + void (*Monitor_task)(void); /*断线重连*/ void (*Socket_Send)(bsp_W5500_Class_t *, u8 *, u16 ); /*端口发送数据*/ }bsp_W5500_t; diff --git a/leakage_system/usr/bsp/bsp_Wdg.c b/leakage_system/usr/bsp/bsp_Wdg.c index 20cdf04..1715205 100644 --- a/leakage_system/usr/bsp/bsp_Wdg.c +++ b/leakage_system/usr/bsp/bsp_Wdg.c @@ -1,6 +1,6 @@ #include "bsp_Wdg.h" -//#include "iwdg.h" +#include "iwdg.h" static void bsp_Wdg_Init(void); static void bsp_Wdg_Feed(void); @@ -15,11 +15,12 @@ bsp_Wdg_t *pWdg = &Wdg; static void bsp_Wdg_Init(void) { -// __HAL_DBGMCU_FREEZE_IWDG(); //调试模式下,冻结看门狗计数器时钟 + __HAL_DBGMCU_FREEZE_IWDG(); //调试模式下,冻结看门狗计数器时钟 + Wdg.Feed(); } static void bsp_Wdg_Feed(void) { -// HAL_IWDG_Refresh(&hiwdg); + HAL_IWDG_Refresh(&hiwdg); } diff --git a/leakage_system/usr/bsp/bsp_w25q.c b/leakage_system/usr/bsp/bsp_w25q.c index 7efecf1..347a00c 100644 --- a/leakage_system/usr/bsp/bsp_w25q.c +++ b/leakage_system/usr/bsp/bsp_w25q.c @@ -5,6 +5,7 @@ #include #include "app_leakage.h" +#include "bsp_W5500.h" /* spi flash 片选引脚 - pb12 */ #define W25Q32_CS_LOW() HAL_GPIO_WritePin(SPI2_CS_GPIO_Port, SPI2_CS_Pin, GPIO_PIN_RESET) @@ -95,12 +96,27 @@ static void gui_tjc_hmi_read_device_info_from_w25q(void) } } +static void gui_tjc_hmi_read_network_config_from_w25q(void) +{ + network_config_t config; + w25q32.read(W25Q32_NETWORK_CONFIG_ADDR, (uint8_t*)&config, sizeof(config)); + + /* 检查数据有效性(判断第一个IP字节不是0xFF,表示有有效数据) */ + if (config.ip[0] != 0xFF && config.ip[0] != 0x00) { + memcpy(W5500.IP_Addr, config.ip, 4); + memcpy(W5500.Sub_Mask, config.mask, 4); + memcpy(W5500.Gateway_IP, config.gateway, 4); + W5500.W5500_Class[0].ConfigData.Port[0] = (config.port >> 8) & 0xFF; + W5500.W5500_Class[0].ConfigData.Port[1] = config.port & 0xFF; + } +} /* 初始化函数 */ static void w25q32_init(void) { W25Q32_CS_HIGH(); /* 初始时片选拉高 */ w25q32_wake_up(); /* 唤醒芯片 */ gui_tjc_hmi_read_device_info_from_w25q(); + gui_tjc_hmi_read_network_config_from_w25q(); } /* 读取芯片id */ diff --git a/leakage_system/usr/bsp/bsp_w25q.h b/leakage_system/usr/bsp/bsp_w25q.h index d227b83..fa097fc 100644 --- a/leakage_system/usr/bsp/bsp_w25q.h +++ b/leakage_system/usr/bsp/bsp_w25q.h @@ -55,6 +55,8 @@ void w25q32_sector_erase(uint32_t sector_addr); /* 蜂鸣器状态存储地址 - 使用独立扇区(扇区14) */ #define W25Q32_BUZZER_STATE_ADDR 0x00E000 /*存储蜂鸣器状态(1字节)*/ +#define W25Q32_NETWORK_CONFIG_ADDR 0x00F000 /* 网络配置存储地址(使用独立扇区) */ + /* w25q32 对象结构体 */ typedef struct { void (*init)(void); diff --git a/leakage_system/usr/gui/gui_tjc_hmi.c b/leakage_system/usr/gui/gui_tjc_hmi.c index ce66976..9ba6f56 100644 --- a/leakage_system/usr/gui/gui_tjc_hmi.c +++ b/leakage_system/usr/gui/gui_tjc_hmi.c @@ -39,6 +39,16 @@ #define HMI_PROTO_GUI_HELP (0x17)/*帮助界面 */ #define HMI_PROTO_GUI_TIME (0x18)/*时间设置界面*/ +/*界面ID*/ +#define GUI_MAIN (10)/*主界面*/ +#define GUI_CURR_ALARM (11)/*实时报警界面*/ +#define GUI_DETALL_MAIN (12)/*主界面_详细信息*/ +#define GUI_LOGIN (13)/*登陆界面*/ +#define GUI_HISTORY_ALARM (14)/*历史报警界面*/ +#define GUI_TCP_CONFIG (15)/*网络配置界面*/ +#define GUI_DEVICE_CONFIG (16)/*设备配置界面*/ +#define GUI_TIME (18)/*时间设置界面*/ + #define HMI_PROTO_ASCII_RX_DELINITER (0xAA)/*接收分隔符*/ #define HMI_PROTO_ASCII_TX_DELINITER (0xFF)/*发送分隔符*/ @@ -125,7 +135,7 @@ static void gui_tjc_hmi_read_password_from_w25q(void) /*将密码保存到W25Q32*/ static void gui_tjc_hmi_save_password_to_w25q(void) { - uint32_t erase_addr = W25Q32_PASSWORD_ADDR & ~(W25Q32_SECTOR_SIZE - 1); + u32 erase_addr = W25Q32_PASSWORD_ADDR & ~(W25Q32_SECTOR_SIZE - 1); w25q32_sector_erase(erase_addr); /*将4字节密码写入W25Q32*/ w25q32.write(W25Q32_PASSWORD_ADDR, p_tjc_hmi->password, 4); @@ -144,7 +154,7 @@ static void gui_tjc_hmi_save_device_info_to_w25q(void) } /* 添加Flash擦除操作 - 必须擦除后才能写入 */ - uint32_t erase_addr = W25Q32_DEVICE_INFO_ADDR; + u32 erase_addr = W25Q32_DEVICE_INFO_ADDR; /* 确保地址是4K对齐(W25Q32_SECTOR_SIZE = 4096) */ erase_addr &= ~(W25Q32_SECTOR_SIZE - 1); @@ -158,6 +168,24 @@ static void gui_tjc_hmi_save_device_info_to_w25q(void) DEVICE_INFO_STORAGE_SIZE); } +/* 将当前W5500的网络配置保存到W25Q32 */ +static void gui_tjc_hmi_save_network_config_to_w25q(void) +{ + network_config_t config; + memcpy(config.ip, W5500.IP_Addr, 4); + memcpy(config.mask, W5500.Sub_Mask, 4); + memcpy(config.gateway, W5500.Gateway_IP, 4); + config.port = (W5500.W5500_Class[0].ConfigData.Port[0] << 8) | + W5500.W5500_Class[0].ConfigData.Port[1]; + + /* 擦除整个扇区(4K对齐) */ + u32 erase_addr = W25Q32_NETWORK_CONFIG_ADDR & ~(W25Q32_SECTOR_SIZE - 1); + w25q32_sector_erase(erase_addr); + + /* 写入配置数据 */ + w25q32.write(W25Q32_NETWORK_CONFIG_ADDR, (uint8_t*)&config, sizeof(config)); +} + /*解析网络函数*/ static void parse_ip_string(u8 *str, u8 len, u8 *ip) { @@ -182,7 +210,7 @@ buffer format:格式化输入 ...:不定长 */ -static u16 gui_tjc_hmi_tx_text_display(u16 x,u16 y,char *buffer,const char *format,...) +static u16 gui_tjc_hmi_tx_text_display(u16 z,u16 x,u16 y,char *buffer,const char *format,...) { u16 i,len; s16 state; @@ -202,7 +230,7 @@ static u16 gui_tjc_hmi_tx_text_display(u16 x,u16 y,char *buffer,const char *form } /*拼接字符串*/ - sprintf(buffer,"t%d_%d.txt=\"%s\"",x,y,gui_tjc_hmi_text_buffer); + sprintf(buffer,"t%d_%d_%d.txt=\"%s\"",z,x,y,gui_tjc_hmi_text_buffer); len = strlen(buffer); for(i=0;ipassword[0], p_tjc_hmi->password[1], @@ -1114,6 +1142,8 @@ static void gui_tjc_hmi_history_alarm_send(u8 cmd,u8 opa,u8 *p_data) page_num++; } + memset(hmi_tx_buffer, 0, sizeof(hmi_tx_buffer)); + if(HMI_PROTO_CMD_GET == cmd) /* 获取数据 */ { switch(opa) @@ -1153,22 +1183,22 @@ static void gui_tjc_hmi_history_alarm_send(u8 cmd,u8 opa,u8 *p_data) if(history.read_history(record_index, &history_record)) { /* 区域名: t(i+1)_1 */ - len += gui_tjc_hmi_tx_text_display(i+1, 1, + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 1, (char *)&hmi_tx_buffer[len], "%s", history_record.region_name); /* 设备ID: t(i+1)_2 */ - len += gui_tjc_hmi_tx_text_display(i+1, 2, + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 2, (char *)&hmi_tx_buffer[len], "%d", history_record.device_id); /*通道信息:t(i+1)_3*/ - len += gui_tjc_hmi_tx_text_display(i+1,3, + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1,3, (char *)&hmi_tx_buffer[len], "%d", - history_record.channel); + history_record.channel+1); /* 报警类型: t(i+1)_4 */ alarm_type_str[0] = '\0'; @@ -1179,13 +1209,13 @@ static void gui_tjc_hmi_history_alarm_send(u8 cmd,u8 opa,u8 *p_data) else if(history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT) strcat(alarm_type_str, "通讯超时"); - len += gui_tjc_hmi_tx_text_display(i+1, 4, + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 4, (char *)&hmi_tx_buffer[len], "%s", alarm_type_str); /* 设备名称: t(i+1)_5 */ - len += gui_tjc_hmi_tx_text_display(i+1, 5, + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 5, (char *)&hmi_tx_buffer[len], "%s", history_record.device_name); @@ -1193,14 +1223,14 @@ static void gui_tjc_hmi_history_alarm_send(u8 cmd,u8 opa,u8 *p_data) /* 漏液距离: t(i+1)_6 (如果是漏液报警才显示) */ if(history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE) { - len += gui_tjc_hmi_tx_text_display(i+1, 6, + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 6, (char *)&hmi_tx_buffer[len], "%d", history_record.leak_distance); } else { - len += gui_tjc_hmi_tx_text_display(i+1, 6, + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 6, (char *)&hmi_tx_buffer[len], "0"); } @@ -1214,7 +1244,7 @@ static void gui_tjc_hmi_history_alarm_send(u8 cmd,u8 opa,u8 *p_data) history_record.start_time[4], history_record.start_time[5], history_record.start_time[6]); - len += gui_tjc_hmi_tx_text_display(i+1, 7, + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 7, (char *)&hmi_tx_buffer[len], "%s", time_str); @@ -1222,24 +1252,26 @@ static void gui_tjc_hmi_history_alarm_send(u8 cmd,u8 opa,u8 *p_data) else { /* 读取失败,显示空 */ - len += gui_tjc_hmi_tx_text_display(i+1, 1, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(i+1, 2, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(i+1, 3, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(i+1, 4, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(i+1, 5, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(i+1, 6, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 1, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 2, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 3, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 4, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 5, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 6, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 7, (char *)&hmi_tx_buffer[len], ""); } } /* 如果本页不足15条记录,清空剩余行 */ for(; i < HISTORY_ALARM_PER_PAGE; i++) { - len += gui_tjc_hmi_tx_text_display(i+1, 1, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(i+1, 2, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(i+1, 3, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(i+1, 4, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(i+1, 5, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(i+1, 6, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 1, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 2, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 3, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 4, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 5, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 6, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 7, (char *)&hmi_tx_buffer[len], ""); } len = strlen((char *)hmi_tx_buffer); @@ -1330,33 +1362,39 @@ static void gui_tjc_hmi_tcp_config_send(u8 cmd,u8 opa,u8 *p_data) { if(p_data[0] == 0x01) { - len += gui_tjc_hmi_tx_text_display(1,1,(char *)&hmi_tx_buffer[len], + len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,1,(char *)&hmi_tx_buffer[len], "%d.%d.%d.%d", W5500.IP_Addr[0], W5500.IP_Addr[1], W5500.IP_Addr[2], W5500.IP_Addr[3]); - len += gui_tjc_hmi_tx_text_display(1,2,(char *)&hmi_tx_buffer[len], + len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,2,(char *)&hmi_tx_buffer[len], "%d.%d.%d.%d", W5500.Sub_Mask[0], W5500.Sub_Mask[1], W5500.Sub_Mask[2], W5500.Sub_Mask[3]); - len += gui_tjc_hmi_tx_text_display(1,3,(char *)&hmi_tx_buffer[len], + len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,3,(char *)&hmi_tx_buffer[len], "%d.%d.%d.%d", W5500.Gateway_IP[0], W5500.Gateway_IP[1], W5500.Gateway_IP[2], W5500.Gateway_IP[3]); - len += gui_tjc_hmi_tx_text_display(1,4,(char *)&hmi_tx_buffer[len],"%s","5000"); + len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,4,(char *)&hmi_tx_buffer[len],"%d",(W5500.W5500_Class[0].ConfigData.Port[0] << 8) | W5500.W5500_Class[0].ConfigData.Port[1]); }else if(p_data[0] == 0x00) { - len += gui_tjc_hmi_tx_text_display(1,1,(char *)&hmi_tx_buffer[len],"%s","192.168.100.100"); - len += gui_tjc_hmi_tx_text_display(1,2,(char *)&hmi_tx_buffer[len],"%s","255.255.255.0"); - len += gui_tjc_hmi_tx_text_display(1,3,(char *)&hmi_tx_buffer[len],"%s","192.168.50.1"); - len += gui_tjc_hmi_tx_text_display(1,4,(char *)&hmi_tx_buffer[len],"%s","5000"); + len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,1,(char *)&hmi_tx_buffer[len],"%s","192.168.100.100"); + len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,2,(char *)&hmi_tx_buffer[len],"%s","255.255.255.0"); + len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,3,(char *)&hmi_tx_buffer[len],"%s","192.168.50.1"); + len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,4,(char *)&hmi_tx_buffer[len],"%s","5000"); + sscanf("192.168.100.100","%hhu.%hhu.%hhu.%hhu",&W5500.IP_Addr[0],&W5500.IP_Addr[1],&W5500.IP_Addr[2],&W5500.IP_Addr[3]); + sscanf("255.255.255.0","%hhu.%hhu.%hhu.%hhu",&W5500.Sub_Mask[0],&W5500.Sub_Mask[1],&W5500.Sub_Mask[2],&W5500.Sub_Mask[3]); + sscanf("192.168.50.1","%hhu.%hhu.%hhu.%hhu",&W5500.Gateway_IP[0],&W5500.Gateway_IP[1],&W5500.Gateway_IP[2],&W5500.Gateway_IP[3]); + W5500.W5500_Class[0].ConfigData.Port[0] = (5000 >> 8) & 0xFF; + W5500.W5500_Class[0].ConfigData.Port[1] = 5000 & 0xFF; + W5500.Init(); } }break; case 0x02:/*无*/ @@ -1376,8 +1414,9 @@ static void gui_tjc_hmi_tcp_config_send(u8 cmd,u8 opa,u8 *p_data) { u8 field_count = 0; u8 *current_pos = p_data; - u8 ip_str[16], mask_str[16], gw_str[16], dns_str[16]; - u8 ip_len, mask_len, gw_len, dns_len; + u8 ip_str[16], mask_str[16], gw_str[16], port_str[16]; + u8 ip_len, mask_len, gw_len, port_len; + u16 port_val; /* 解析IP地址 */ for (i = 0; i < 16; i++) { @@ -1415,12 +1454,12 @@ static void gui_tjc_hmi_tcp_config_send(u8 cmd,u8 opa,u8 *p_data) } } - /* 解析DNS服务器 */ - for (i = 0; i < 16; i++) { + /* 解析端口号 */ + for (i = 0; i < 16; i++) { if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) { - dns_len = i; - memcpy(dns_str, current_pos, dns_len); - dns_str[dns_len] = '\0'; + port_len = i; + memcpy(port_str, current_pos, port_len); + port_str[port_len] = '\0'; current_pos += (i + 1); field_count++; break; @@ -1431,6 +1470,16 @@ static void gui_tjc_hmi_tcp_config_send(u8 cmd,u8 opa,u8 *p_data) parse_ip_string(ip_str, ip_len, W5500.IP_Addr); parse_ip_string(mask_str, mask_len, W5500.Sub_Mask); parse_ip_string(gw_str, gw_len, W5500.Gateway_IP); + /* 端口号转换为整数 */ + port_val = atoi((char*)port_str); + W5500.W5500_Class[0].ConfigData.Port[0] = (port_val >> 8) & 0xFF; + W5500.W5500_Class[0].ConfigData.Port[1] = port_val & 0xFF; + + /* 保存到Flash */ + gui_tjc_hmi_save_network_config_to_w25q(); + + /* 重启W5500使新配置生效 */ + W5500.Init(); } }break; @@ -1473,7 +1522,7 @@ static void gui_tjc_hmi_device_config_send(u8 cmd,u8 opa,u8 *p_data) enabled_device_count = 0; for(i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++) { - if(leakage.sub_device_data[i].flash_data.state == ENABLE) + if(leakage.sub_device_data[i].flash_data.state == ENABLE && leakage.sub_device_data[i].flash_data.modbus_id > 0) { enabled_device_count++; } @@ -1497,10 +1546,10 @@ static void gui_tjc_hmi_device_config_send(u8 cmd,u8 opa,u8 *p_data) { for(i = 0; i < DEVICES_PER_PAGE; i++) { - len += gui_tjc_hmi_tx_text_display(i+1, 1, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(i+1, 2, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(i+1, 3, (char *)&hmi_tx_buffer[len], ""); - len += gui_tjc_hmi_tx_text_display(i+1, 4, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 1, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 2, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 3, (char *)&hmi_tx_buffer[len], ""); + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 4, (char *)&hmi_tx_buffer[len], ""); } len = strlen((char *)hmi_tx_buffer); gui_tjc_hmi_data_send(hmi_tx_buffer, len); @@ -1538,7 +1587,7 @@ static void gui_tjc_hmi_device_config_send(u8 cmd,u8 opa,u8 *p_data) device_index = page_device_indices[i]; /*区域名: t(i+1)_1 */ - len += gui_tjc_hmi_tx_text_display(i+1, 1, + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 1, (char *)&hmi_tx_buffer[len], "%s", leakage.sub_device_data[device_index].flash_data.region_name); @@ -1547,26 +1596,26 @@ static void gui_tjc_hmi_device_config_send(u8 cmd,u8 opa,u8 *p_data) u8 com_port = leakage.sub_device_data[device_index].flash_data.com; if(com_port < 4) /*确保端口号在有效范围内*/ { - len += gui_tjc_hmi_tx_text_display(i+1, 2, + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 2, (char *)&hmi_tx_buffer[len], "%s", hmi_proto_string_com[com_port]); } else { - len += gui_tjc_hmi_tx_text_display(i+1, 2, + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 2, (char *)&hmi_tx_buffer[len], "未知"); } /*设备ID: t(i+1)_3 */ - len += gui_tjc_hmi_tx_text_display(i+1, 3, + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 3, (char *)&hmi_tx_buffer[len], "%d", leakage.sub_device_data[device_index].flash_data.modbus_id); /*设备名称: t(i+1)_4 */ - len += gui_tjc_hmi_tx_text_display(i+1, 4, + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 4, (char *)&hmi_tx_buffer[len], "%s", leakage.sub_device_data[device_index].flash_data.device_name); @@ -1578,22 +1627,22 @@ static void gui_tjc_hmi_device_config_send(u8 cmd,u8 opa,u8 *p_data) for(i = page_device_count; i < DEVICES_PER_PAGE; i++) { /*清空区域名*/ - len += gui_tjc_hmi_tx_text_display(i+1, 1, + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 1, (char *)&hmi_tx_buffer[len], ""); /*清空端口号*/ - len += gui_tjc_hmi_tx_text_display(i+1, 2, + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 2, (char *)&hmi_tx_buffer[len], ""); /*清空设备ID*/ - len += gui_tjc_hmi_tx_text_display(i+1, 3, + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 3, (char *)&hmi_tx_buffer[len], ""); /*清空设备名称*/ - len += gui_tjc_hmi_tx_text_display(i+1, 4, + len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 4, (char *)&hmi_tx_buffer[len], ""); } @@ -1814,6 +1863,11 @@ static void gui_tjc_hmi_device_config_send(u8 cmd,u8 opa,u8 *p_data) id_str[i] = '\0'; new_device.modbus_id = atoi(id_str); + if(new_device.modbus_id < 1 && new_device.modbus_id > 255) + { + return; + } + current_pos += (i + 1); field_count++; break; @@ -1841,7 +1895,7 @@ static void gui_tjc_hmi_device_config_send(u8 cmd,u8 opa,u8 *p_data) { new_device.state = ENABLE; new_device.baudrate = app_com.com[new_device.com].flash_data.baudrate; - new_device.shield = UNBLOCKED; + leakage.sub_device_data[x].shield = UNBLOCKED; leakage.sub_device_data[x].flash_data = new_device; gui_tjc_hmi_save_device_info_to_w25q(); gui_tjc_hmi_class_update(); @@ -1859,7 +1913,7 @@ static void gui_tjc_hmi_device_config_send(u8 cmd,u8 opa,u8 *p_data) /*波特率设置*/ new_device.baudrate = app_com.com[new_device.com].flash_data.baudrate; - new_device.shield = UNBLOCKED; + leakage.sub_device_data[empty_slot_index].shield = UNBLOCKED; /*添加到app_leakage的设备列表中*/ leakage.sub_device_data[empty_slot_index].flash_data = new_device; @@ -1892,7 +1946,7 @@ static void gui_tjc_hmi_device_config_send(u8 cmd,u8 opa,u8 *p_data) case 0x02:/*删除设备,将设备信息从w25q中删除*/ { - u8 page_device_indices[8] = {0}; /*存储当前页8个设备在app_leakage中的索引*/ + u8 page_device_indices[8] = {0}; /*存储当前页8个设备在app_leakage中的索引*/ u8 page_device_count = 0; /*当前页实际启用的设备数量*/ u8 current_enabled_index = 0; /*当前是第几个启用的设备*/ diff --git a/leakage_system/usr/protocol/proto_modbus_tcp_slave_ex.c b/leakage_system/usr/protocol/proto_modbus_tcp_slave_ex.c index 73356a5..ee64817 100644 --- a/leakage_system/usr/protocol/proto_modbus_tcp_slave_ex.c +++ b/leakage_system/usr/protocol/proto_modbus_tcp_slave_ex.c @@ -268,7 +268,7 @@ static u16 proto_modbus_data_read(u16 addr) // data = (leakage.sub_device_data[sensor_index].flash_data.com + 1)<< 8 | leakage.sub_device_data[sensor_index].flash_data.modbus_id; u16 value = (leakage.sub_device_data[sensor_index].flash_data.com + 1) << 8; value |= leakage.sub_device_data[sensor_index].flash_data.modbus_id; - if (leakage.sub_device_data[sensor_index].flash_data.shield == BLOCKED) { + if (leakage.sub_device_data[sensor_index].shield == BLOCKED) { value |= 0x8000; /*最高位表示屏蔽*/ } if (leakage.sub_device_data[sensor_index].flash_data.state == ENABLE) {