[Kinetis] 【FRDM-KL02Z开发笔记】GPIO中断(CW10.6+FRDM-KL02Z+MiniDock)

[复制链接]
1595|6
 楼主| quray1985 发表于 2015-12-3 20:23 | 显示全部楼层 |阅读模式
在练习了GPIO的基本输入输出功能后,接下来学习一下GPIO的中断功能,这个中断功能使用也是相当广泛的。

GPIO可选择上升沿、下降沿、上升沿或下降沿、高电平、低电平等情况,使用也非常灵活!

那还是结合实例吧,学起来比较有成就感嘛。

实现功能还是按键控制灯,每次按下MiniDock上的K3键,蓝色的LED1状态取反一次,使用中断方式。

开发环境还是:CW10.6+FRDM-KL02Z+MiniDock

如何使用CW开发参考:CW10.6开发FRDM-KL02Z   

类似的按键控制LED非中断参考:按键控制LED(CW10.6+FRDM-KL02Z+MiniDock)

1、编程前还是先看电路这个电路非常简单,就不过多说明了,LED使用PTB6,key使用PTA12引脚。



2、建立工程文件,这个参考之前的帖子就好了。
 楼主| quray1985 发表于 2015-12-3 20:25 | 显示全部楼层
3、在PE中添加LED引脚使用的GPIO模块,如下图:


4、在PE中添加GPIO的中断组件,以便共按键使用,如下图:


5、PE中配置LED组件:


6、PE中配置GPIO的外部中断,在这里选择下降沿触发,也就是每次按下按键触发中断。


7、由PE生成代码:



 楼主| quray1985 发表于 2015-12-3 20:27 | 显示全部楼层
8、在生成的代码中,找到下图的文件,在对应的外部中断中添加LED状态变化的程序,其实非常简单,只需要1个函数就好了!


9、编译,调试程序,这个也省略了,大家可以参看之前的帖子。

10、演示,这个效果和之前的一样,偷懒不拍照了,拿了前面的图片充一下



 楼主| quray1985 发表于 2015-12-3 20:29 | 显示全部楼层
11、下面来仔细分析一下CW中,PE生成的外部中断文件结构,这个还是比较有意义的!
(1)在下图位置,对应的中断向量表可以找到PTA的中断向量。


(2)使用追踪,可以看到相应的外部中断服务程序,请标志位,调用中断发生事件


(3)再次追踪,可以看到,外部中断里调用了Key_EInt_OnInterrupt函数。


(4)而Key_EInt_OnInterrupt函数正式我们刚才控制LED取反的函数位置。

(5)通过上面分析PE生成的CW代码,可以看出自动生成的代码还是比较清晰明了的!
64xiaodian 发表于 2016-1-25 13:09 | 显示全部楼层
正在学习KL02Z的这一块,谢谢楼主
64xiaodian 发表于 2016-1-25 17:21 | 显示全部楼层
quray1985 发表于 2015-12-3 20:25
3、在PE中添加LED引脚使用的GPIO模块,如下图:

CW10.6很高端啊:)
戏如人生8 发表于 2016-8-6 23:00 | 显示全部楼层
你好 你有MiniDock板子的原理图吗 有的话麻烦给我发一下谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

156

主题

1488

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部