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

【STM8-SO8-DISCO】——4、外部中断

[复制链接]
七哥 发布时间:2019-2-19 01:00
本帖最后由 toofree 于 2019-2-19 01:16 编辑
0 @# B- c& R: O; t  u( X
+ l6 q  z  b% L4 \' k
【STM8-SO8-DISCO】——4、外部中断
* E3 l' X2 e; V% z6 k& j- S. Q; a
. m7 T! w) r  Y1 v
  本贴所用工程模板参考,
【STM8-SO8-DISCO】——2、简单粗暴建工程模板https://www.stmcu.org.cn/module/f ... 9341&fromuid=307297
1 Y- ^: {7 ^* }0 i. i(出处: 意法半导体STM32/STM8技术社区)
& _9 G$ F! J' g8 r$ H( h4 _9 i9 ^4 }- [9 @
2 y8 c" p1 Y8 B5 f2 C+ ]6 A1 {! p
  由原理图可知,按键B1为高电平有效。当B1按下时,触发上升沿中断。(当然也可以释放按键操作,来触发下降沿中断) 01.jpg
$ C! o& y; g; X# Y' Y! M6 F% {. h; \* b' R- P$ \0 z: S7 p
  复制样例程序“STM8S_StdPeriph_Lib\Project\STM8S_StdPeriph_Examples\EXTI\EXTI_InterruptPriority”下的全部文件。+ X2 o) @; @" I
02.jpg   C& L8 T7 ?- {# D

' k( x. Y( r0 T& W( \& J, {* Y  工程模板文件夹改名为“STM8S_StdPeriph_EXTI”。并将上一步复制的6个文件粘贴到工程模板文件夹下,并替换同名文件。
# W/ h/ Z5 c2 h* x 03.jpg
( E# g- I/ w- n9 ]6 z# L- z& S* Q- X; G) I2 ^' E
  修改“main.h”文件中的宏定义,添加按键和LED宏定义。
$ w; L( G- q% l  f2 `  e! C2 m 11.jpg
& H0 X5 C% Y# _' E- O& v+ L# @1 D: K- S* B
  修改“main.c”文件。初始化LED为输出,按键为浮空中断方式“GPIO_MODE_IN_FL_IT”;初始化外部中断“EXTI_PORT_GPIOC”;开启中断。
1 M- g# y* |5 G( Z6 I/ I% m' r0 S& V 12.jpg
" Y. u' M8 h. P: m- I+ n7 C
1 I, E9 _( n/ g8 Q) A3 R7 u  修改“stm8s_it.c”文件。找到“EXTI_PORTC_IRQHandler”对应的中断服务函数,添加中断判断,满足条件时执行LED输出状态翻转。
; m; R- g+ k* y7 p 13.jpg , V  M1 W. Z4 ]. T$ s+ r$ I5 x

1 L) c( p2 h  F* h1 J4 _  编译,下载程序,并全速运行。) r) H8 y6 `2 s5 ]( D% x" c3 b
  实验现象为,每按一次用户按键B1,LD1的状态翻转一次。6 l" Q( F5 u6 W4 ~

+ K- \' [/ p* |9 g1 P+ c: J4 O+ o; R) g* C& Z
  附上程序工程:
: u8 J  r) B% L& P9 ]: g* ], {3 j
STM8S_StdPeriph_EXTI.rar (259.09 KB, 下载次数: 15)
收藏 评论2 发布时间:2019-2-19 01:00

举报

2个回答
Kevin_G 回答时间:2019-2-19 11:22:06
好好好
ml8866 回答时间:2019-3-18 22:38:03
谢谢分享呀
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版