1.检查stm32f407xx_flash.icf 其它MCU一样 *.icf文件中 中断向量地址,我这里设置的0x08008000, 8000的偏移地址。
2.用HAL库必须定义 USER_VECT_TAB_ADDRESS 并设置VECT_TAB_OFFSET (偏移大小根据自己的BOOT BIN文件大小)
3. 反初始化所有IO ,外设 UART ,SPI,DMA, RCC等,然后关中断 __set_FAULTMASK(1); /* 禁止全局中断*/ 包含错误中断也禁止
4. 从来没碰到过PLLQ BOOT和APP设置不一样,然后跳过去不运行。见:最上图
主要问题来了: HAL_RCC_DeInit(); 需要在反初始化时加入,关闭PLL 及晶振。
这个问题可能现像有些怪,我这里在用串口时,老是报串口噪声错误。或者是有中断但是没有有效数据。