本帖最后由 zhdzhd-174422 于 2019-2-25 10:23 编辑 7 i3 k1 I* P9 d7 W3 A STM8-SO8-DISCO开发板上配置了一个用户按键和一个用户LED,相对配置外部中断,代码相对简单精练,不需要花太多的时间去研究那么函数和代码。 . q5 q8 H* ?+ }; V. Z! r+ W0 c% s, l 我们用上篇建立的工程模板来继续完成这个工程:1、进到en.stsw-stm8S069\STM8S_StdPeriph_Lib\Project\STM8S_StdPeriph_Template目录下,全选文件复制;在en.stsw-stm8S069\STM8S_StdPeriph_Lib\Project\下创建GPIO文件夹,把复制的文件粘贴到GPIO文件下,保存上次创建的工程。2 ^' p( w) Z5 U 2、首先从en.stsw-stm8S069\STM8S_StdPeriph_Lib\Project\STM8S_StdPeriph_Examples\EXTI\EXTI_InterruptPriority复制全部的文件到en.stsw-stm8S069\STM8S_StdPeriph_Lib\Project\STM8S_StdPeriph_Template下,覆盖原来的全部文件。; G* ]/ `8 x8 j( f' w D 9 E+ s2 |+ u% d* z0 f 3、进入en.stsw-stm8S069\STM8S_StdPeriph_Lib\Project\STM8S_StdPeriph_Template\EWSTM8目录下双击Project.eww,在IAR中打开工程文件,在工程上右键点击,选择Clean,清除上次的编译记录。$ ]" X t9 g' J. u; J2 n 3、打开main.h文件,修改GPIO端口配置,从官方的原理图上可得知,PA3引脚控制LED,PC3引脚连接按键,故做如下修改:# _, }% t1 L0 M: Z! y. h. { 9 |. ^8 C' z3 L: K 4、打开main.c文件,修改LED输出以及按键中断配置,PC3按键设置成浮空输入,利用下降沿中断。 5、打开stm82_it.c文件,添加延时函数用于按键防抖;并在PORTC中断处理函数下增加按键和转灯的配置代码: , w* u, ~/ D$ [# b: ] ! W3 x4 f1 L, h1 i 6、编译成功,下载运行。& M/ f' O/ q8 T3 ~( R9 J: n 7、运行效果:$ y8 x( d o# L, ]1 T ; F8 l* F) d- S8 m& u- K5 H3 H |