|
发表于 2022-2-28 16:57:32
|
显示全部楼层
#if USE_DEBUG==1
curCursor.x = LCD_FACTMARGIN;
curCursor.y = DISPLAY_LOWPOWER_VALUE_Y;
Clear_Line(DisplayFont.font,BACKCOLOR);
Disp_Hanzi_Line("运行APP",&DisplayFont);
#else
uint16_t i=0;
/* 跳转之前关闭相应的中断 */
usart_interrupt_disable(UART,USART_INT_RBNE);
timer_interrupt_disable(TIMER5,TIMER_INT_UP);
usart_deinit(UART);
timer_deinit(TIMER5);
for(i = 0; i < 8; i++)
{
NVIC->ICER[i] = 0xFFFFFFFF; /* 关闭中断*/
NVIC->ICPR[i] = 0xFFFFFFFF; /* 清除中断标志位 */
}
uint32_t app=APP_ADDRESS;
uint32_t firm=FIRMWARE_ADDRESS;
jump2app=(void(*)())*(__IO uint32_t*)(app); //用户代码区第二个字为程序开始地址(复位地址)
MSR_MSP(*(uint32_t*)firm); //初始化APP堆栈指针(用户代码区的第一个字用于存放栈顶地址)
jump2app();
这是我在STM32F103上使用的方法。楼主不妨试试。 |
|