STM32 在MDK SRAM调试时,一般都要在宏定义中加入 VECT_TAB_SRAM (project->options for target... ->C/C++ ->Define 输入 VECT_TAB_SRAM )
因为SRAM的地址是在0x20000000运行的,所以在main()中要输入下列语句
#ifdef VECT_TAB_RAM
/* Set the Vector Table base location at 0x20000000 */
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
#else /* VECT_TAB_FLASH */
/* Set the Vector Table base location at 0x08000000 */
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
#endif
或者直接加
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
但是在调试USART1的中断调试中发现只有第一次启动可以进入中断接收电脑发送来的字符,如果reset则无法进入中断
后来把上面的语句取消,也这个现象
不知道为什么