打印
[Kinetis]

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

[复制链接]
1101|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代码,可以看出自动生成的代码还是比较清晰明了的!

使用特权

评论回复
5
64xiaodian| | 2016-1-25 13:09 | 只看该作者
正在学习KL02Z的这一块,谢谢楼主

使用特权

评论回复
6
64xiaodian| | 2016-1-25 17:21 | 只看该作者
quray1985 发表于 2015-12-3 20:25
3、在PE中添加LED引脚使用的GPIO模块,如下图:

CW10.6很高端啊:)

使用特权

评论回复
7
戏如人生8| | 2016-8-6 23:00 | 只看该作者
你好 你有MiniDock板子的原理图吗 有的话麻烦给我发一下谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

156

主题

1488

帖子

5

粉丝