forked from gary/BCU
2
0
Fork 0
BCU/app/stm32fxxx_boot/user/app_hmi.c

54 lines
1.3 KiB
C

#include "drv_wdog.h"
#include "drv_flash.h"
#include "app_hmi.h"
#include "app_config.h"
#include "drv_rcc.h"
#include "drv_clk.h"
//跳转前要复位外设,防止应用程序未初始化进入中断
void jumpHandler(void)
{
RCC->APB2RSTR |= RCC_APB2Periph_USART1;
RCC->APB2RSTR &= ~RCC_APB2Periph_USART1;
RCC->APB2ENR &= ~RCC_APB2Periph_USART1;
RCC->APB1RSTR |= RCC_APB1Periph_USART2;
RCC->APB1RSTR &= ~RCC_APB1Periph_USART2;
RCC->APB1ENR &= ~RCC_APB1Periph_USART2;
RCC->APB1RSTR |= RCC_APB1Periph_USART3;
RCC->APB1RSTR &= ~RCC_APB1Periph_USART3;
RCC->APB1ENR &= ~RCC_APB1Periph_USART3;
RCC->APB1RSTR |= RCC_APB1Periph_UART4;
RCC->APB1RSTR &= ~RCC_APB1Periph_UART4;
RCC->APB1ENR &= ~RCC_APB1Periph_UART4;
RCC->APB1RSTR |= RCC_APB1Periph_UART5;
RCC->APB1RSTR &= ~RCC_APB1Periph_UART5;
RCC->APB1ENR &= ~RCC_APB1Periph_UART5;
RCC->APB1RSTR |= RCC_APB1Periph_USART3;
RCC->APB1RSTR &= ~RCC_APB1Periph_USART3;
RCC->APB1ENR &= ~RCC_APB1Periph_USART3;
RCC->APB2RSTR |= RCC_APB2Periph_USART1;
RCC->APB2RSTR &= ~RCC_APB2Periph_USART1;
RCC->APB2ENR &= ~RCC_APB2Periph_USART1;
drvFeedWdog();
}
void appJumpAnalyse(void)
{
flashJumpNew(APP_CFG_APP_START_ADDR, jumpHandler);
}
void appInitHmi(void)
{
appJumpAnalyse();
}