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

STM32串口中断不能进入

[复制链接]
STMCU小助手 发布时间:2023-2-26 18:47
问题( [. c) T9 a6 u/ G6 ~
如题,STM32配置的串口中断不能进入,DEBUG时串口中断服务函数也不能打断点9 j: U$ o! [+ _) v# f% O

( H! R1 f! N2 E9 E背景
2 x! O( r1 f1 \( N$ a& W* O配置串口函数以及串口中断服务函数是写在一个.cpp文件中
! L  A, n! f7 s( Z$ v

: H+ ?' S' Z. J& X" G+ g解决* T. t5 ]! P% ]5 c/ F: {
在中断服务函数前面加上
8 C3 ]( }# Z9 W8 {' Q6 m  E
  1. extern "C"0 H: b( L" \& M3 C/ A3 ?" Y
复制代码
' [( J8 O; u" e8 m" [
也即:9 d, z: i4 A& _/ S  a

" ?* [5 ^" P2 G: e  v
  1. void USART1_IRQHandler(void)' v; I6 n. @0 b8 D! A9 e9 }7 }* l
  2. {
    ! J$ R1 o. u, n  H( I& ?1 U
  3.         //.....5 i! F9 [. O# X
  4. }
    : n& K: j% ^# Q; V; ]5 k" u
复制代码

! M  z' d1 n5 u" N0 y+ z改为3 Z1 G8 r. V3 T! E% \
  1. extern "C" void USART1_IRQHandler(void)$ D; g6 O; D( E2 `) F, d7 \
  2. {3 C: m1 d) A1 `& D& e$ _
  3.         //.....& i+ U. q( W" T" ?! x$ D! D# {
  4. }
    # u' r1 s: b% O1 D
复制代码

! F+ @3 d; g2 o$ ]9 e& d% n' P8 H总结" P+ J- A: b' M
extern “C” 可以抑制C++对函数名、变量名等符号进行名称重整,因此编译出的C目标文件和C++目标文件中的变量、函数名等符号都是相同的,连接器可以可靠地对两种类型的目标文件进行链接。
8 r2 O# \3 A" d, e' L# x% r# c: S7 G————————————————
, {/ J" y2 w* w7 k& T版权声明:火红色祥云
, Y# k2 T& e) p' I" W  t# Z
  R# s8 D5 k' w. M9 L+ z
收藏 评论0 发布时间:2023-2-26 18:47

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版