STM32串口中断不能进入

发布于:2023-07-04 ⋅ 阅读:(133) ⋅ 点赞:(0)

问题

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

背景

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

解决

在中断服务函数前面加上

extern "C"

也即:

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

改为

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

总结

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


网站公告

今日签到

点亮在社区的每一天
去签到