你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32串口中断不能进入

[复制链接]
STMCU小助手 发布时间:2023-2-26 18:47
问题
5 X! M* E0 [0 v" S, U+ W7 g8 \9 d( V如题,STM32配置的串口中断不能进入,DEBUG时串口中断服务函数也不能打断点
' ]2 E; c9 I9 f: U9 @! m
* z. k. M6 ]2 p* \背景: K7 }$ G  {- q2 X$ A& \& a# E$ y: |
配置串口函数以及串口中断服务函数是写在一个.cpp文件中
. z$ z3 {4 I( m: j

: ^) _! I1 g) Q" |4 s0 f9 {/ ]解决+ @$ z1 N+ Q( ~. r. u& r! N# V+ }
在中断服务函数前面加上
" c6 |) q! A- n2 z; x  m# W! f$ R
  1. extern "C") G: p) M4 ^/ v
复制代码
4 Z7 Y3 z2 ~" i/ U) Z
也即:7 U. y( J/ g1 N$ G: c- s3 x8 E9 ?
把! e! o# r8 h( E/ M, R
  1. void USART1_IRQHandler(void)
    * l% l. r  u% d& F$ C1 E% f
  2. {( a$ \! l7 }7 A
  3.         //...... R6 E/ |# o" I$ u7 u% n! a. i) W  W
  4. }
    7 \( h3 t4 m% b8 F6 i
复制代码

8 I( h* k- O* }/ w5 }+ t& o改为
8 Z% r0 A4 o. F' ~) N8 o
  1. extern "C" void USART1_IRQHandler(void)% O8 \5 C5 M$ l# N) t% B
  2. {
    ! t. L& }+ n2 l7 x" _+ B9 q2 n
  3.         //.....
    + y7 v$ r% v  A8 @& {4 h
  4. }
    6 ~+ z. E8 C: s+ }+ I+ L
复制代码
" x, Y  K* M. ]: Z% W+ z
总结
3 p! F  S- z8 {; kextern “C” 可以抑制C++对函数名、变量名等符号进行名称重整,因此编译出的C目标文件和C++目标文件中的变量、函数名等符号都是相同的,连接器可以可靠地对两种类型的目标文件进行链接。; e8 V: O0 Q" i
————————————————/ l- g, `% L/ r2 s: J( g" @
版权声明:火红色祥云9 s, G- \" p0 Z; S" ~+ C9 C

# a3 n' m$ L7 U( w
赞 收藏 评论0 发布时间:2023-2-26 18:47

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版