STM32串口中断不能进入

问题

如题,STM32配置的串口中断不能进入,DEBUG时串口中断服务函数也不能打断点

背景

配置串口函数以及串口中断服务函数是写在一个.cpp文件中

解决

在中断服务函数前面加上

extern "C"

也即:

void USART1_IRQHandler(void)
{
	//.....
}

改为

extern "C" void USART1_IRQHandler(void)
{
	//.....
}

总结

extern “C” 可以抑制C++对函数名、变量名等符号进行名称重整,因此编译出的C目标文件和C++目标文件中的变量、函数名等符号都是相同的,连接器可以可靠地对两种类型的目标文件进行链接。

你可能感兴趣的:(STM32,随笔,stm32)