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

【经验分享】STM32F0xx_EXIT中断配置详细过程

[复制链接]
STMCU小助手 发布时间:2021-11-24 13:24
Ⅰ、概述  j' p$ E, `/ C
EXIT外部中断在使用到按键或者开关控制等应用中比较常见,低功耗中断唤醒也是很常见的一种。因此,EXIT在实际项目开发中也是比较常见的一种。
: {0 d" u' d+ e3 r! C/ u  pSTM32F0中外部中断EXIT属于中断和事件的章节,请看参考手册第十二章,但需要配合系统配置控制器(System configuration controller)进行操作,为中断分配引脚,详情请看参考手册第十章。! f- }6 L6 M9 _0 A& j( L

& y3 T) y- k- K4 ?4 OⅡ、下载
; _# B; g8 N+ n; ~8 X* E. u文章提供的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘,请放心下载测试,如有问题请检查一下你的板子是否有问题。/ ~; ?7 B: A% d2 N7 \
ST标准外设库和参考手册、数据手册等都可以在ST官网下载,你也可以到我的360云盘下载。关于F0系列芯片的参考手册有多个版本(针对F0不同芯片),但有一个通用版本,就是“STM32F0x128参考手册V8(英文)2015-07”建议参考该手册,以后如果你换用一种型号芯片也方便了解。
* k8 M& L- A# O) W1 @. O7 v1 l今天的软件工程下载地址(360云盘):& [6 \8 T% i9 g$ K) ]# U& d# w
https://yunpan.cn/cRJDddvF4hdXE  访问密码 f0af9 i5 @7 s. D  k4 }- @: v9 d
STM32F0xx的资料可以在我360云盘下载:
0 `6 x4 F" `6 p6 chttps://yunpan.cn/cS2PVuHn6X2Bj  访问密码 8c378 Z$ \0 ~/ p. V2 f5 P  U& B& l

) D3 ~2 d% w2 k2 _5 I' ]# HⅢ、准备工作5 Q) J6 v  F1 V; y3 P9 |7 R9 M" f" G
对于EXIT的编程,建议大家准备F0的参考手册第十章和数据手册,方便查阅相关知识,没有的请到ST官网或到我360云盘下载。
0 B* [3 n) g  ~, ?今天总结的软件工程是基于“TIM基本延时配置详细过程”修改而来,因此需要将该软件工程下载准备好。我每次都是提供整理好的软件工程供大家下载,但是,如果你是一位学习者,建议自己亲手一步一步操作。1 E  b1 K5 n+ ?3 [* Y
# ]* N  @! _, V
Ⅳ、外部中断原理
2 K8 S, n9 s! T% O4 n4 n3 N
5 C& g' v; T! D7 t其实EXIT外部引脚中断的原理很简单,配置相应引脚为输入模式,根据电路看是否需要上下拉电阻,将该引脚通过SYSCFG配置为中断线,再配置NVIC,编写中断处理的事情即可。" p" u* {0 Y( E4 Z$ B8 G
4 U  B3 U$ x/ {5 \
20160608232459450.png
5 A$ A+ K; M" |4 ~

6 q3 s! ^9 b, e/ ^Ⅴ、代码描述/ z* A, Q; V' k

3 V8 P# {8 C& X2 v" I请下载软件工程查看源代码,结合源代码理解总结的每一点。
& i/ V# m# S5 P1 g5 }& @
) L8 K0 s# B/ [0 T( i2 n8 L, P①RCC时钟
2 P# N" U+ @5 F$ \" z. {4 l% G/ x: E
20160608232510661.png

, Q7 B, U4 {5 C3 `( y" P4 V) K" h8 _9 R7 b% e6 i
该函数位于bsp.c文件上面;, m7 _1 e5 T. V8 u8 }

$ ~  R; I1 ?2 d; b: @我个人习惯第一步配置时钟,ST官方提供的例程也是把配置时钟放在前面。关于RCC时钟的配置比较重要,有好几次我就是由于忘记配置相应RCC时钟,让我找了很久的问题,最后才发现是RCC时钟没有配置。
# u7 H* F) f$ N6 o4 t# q9 w* Y/ a: p/ D" O9 \; e2 U
注意:
$ ]) q( j# q) ?% l! D( M2 M0 w
& r, _8 o5 j# y6 H  `! e! T外设时钟不要随便添加,比如:RCC_APB1外设不要配置在RCC_APB2时钟里面【如:RCC_APB2PeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);这样能编译过,但是错误的】7 {  V! [2 C7 Y; n

  |& T' _6 M" L8 g我每次都提醒RCC时钟,是因为很多人就是因为时钟而导致软件运行有问题,所以,提醒更多人要注意配置RCC.
8 Q# d4 |% A% D
" r. I4 a) D7 p②EXIT配置
2 s& y; _1 U" o: C( t/ P3 t# {: t5 q/ E. `" F6 u
20160608232517411.png
  f0 e2 S$ A4 j' O5 b7 u2 [
7 P( T& d9 \. `2 k9 t8 i6 ^$ S- c" A2 ~+ e
该函数位于bsp.c文件下面;3 N0 J) z+ l- P2 [; n. a. z

/ K4 @: \( H$ v注意:: v2 S) x) b5 e, W6 V' |
4 R, N5 N' z; r) _
该函数将EXIT分为三部分,引脚的基本配置、外部中断线配置、系统控制器配置,每一个步骤都需要,否则不会响应中断。
1 u" o! i% q" f! W' h) O( T9 y: T8 o' E& B9 j* n, V  \
③NVIC配置' M, F6 t" C# m+ O/ Y
6 K4 v- t1 ]7 E0 @, [' b8 Q( ^* O
20160608232529411.png
& r1 I* w% z) l% e! X
7 u. m* ]) l* q8 R3 c0 r: S
该函数位于bsp.c文件下面;
4 C. y9 d/ M! ^! s: Y7 u6 J' p% ?+ T# b
6 M& a' A5 @" i: }3 j0 @要响应中断,就需要为其分配中断优先等级。
4 W; P4 k- s  f
7 c1 S( }' [* B+ _, i" Y注意:
0 V5 X: N1 f: T
% p: h' `& j7 L5 t! ^外部中断通道入口不是每一个中断分配一个入口,根据手册和参考资料可以看得出来分配为:EXTI0_1_IRQn、EXTI2_3_IRQn、EXTI4_15_IRQn;意思就是外部中断0-1为同一个的入口,其他原理相同。
6 G- |- U' s1 e2 m/ H5 W/ L
& k4 Y: L8 I9 P# @) `5 Q3 m④中断函数" Q% t" [0 }3 v9 D- a' ]9 o
! Y# B/ J/ b1 @5 |0 r! e1 A
20160608232523770.png
& }! J; q9 n7 U( F3 `$ }

& _' {0 {7 g& }: }该函数位于stm32f0xx_it.c文件下面;" C0 e7 D+ g% ?; S6 K8 E. ]7 F
* L" p3 i& }2 j2 T2 u- c2 G
这里我的操作相对比较简单,按键一次,中断一次。按下按键,延时消抖,变化LED一次,等待按键释放,最后清除中断标志位。
  N( ]0 |& L4 N% `4 Z- H0 J3 C2 p' I2 l
注意:9 L; @7 ~: ]2 `. e+ X
8 g4 ^4 ~: w" c) h4 G
图中红色标记才是在实际应用中的重点,如果一个大的工程,有其他人也参与进来了,或者项目有部分代码是移植之前的,很有可能开启了其他中断,如果这里不加这一句判断,很可能程序会死在中断里面。
) {* h' ~$ h9 w" k7 A! J2 X( S7 D$ G6 Z; q
Ⅵ、说明
- {0 [0 V8 Y7 s& N- S3 \& c
" o* o9 t4 e4 P: I3 x或许你硬件芯片不是提供工程里面的芯片,但是STM32F0的芯片软件兼容性很好,可以适用于F0其他很多型号的芯片,甚至是F2、F4等芯片上(具体请看手册、或者亲自测试)。; {' A5 h2 {! `* J6 ~
. c, [0 g3 j. h  t+ e2 S
本文章提供的软件工程是基于ST标准外设库为基础建立而成,而非使用STM32CubeMX建立工程。个人觉得使用ST的标准外设库适合与学习者,STM32CubeMX建立工程结构复杂,对于学习者,特别是初学者估计会头疼。
* m* j: Z+ d4 K
; i* x3 E4 ~2 f; m# S0 r今天的工程是基于工程“STM32F0xx_TIM基本延时配置详细过程”修改而来,以上实例总结仅供参考,若有不对之处,敬请谅解。
4 n- F( m& U' v8 n/ B1 w. ]6 ]
, l$ K' F: ?5 [6 ]9 o6 G% O. B/ p8 d% x) P4 u% Y* G
赞 收藏 评论0 发布时间:2021-11-24 13:24

举报

0个回答

所属标签

相似技术帖

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