之前学过一段时间的MSP430,现在由于课程的需要学习freescale的kinetis k20,具体芯片型号为MK20DN512。以前学习的时候也遇到过很多问题,在网上找到了很多有用的博客,现在希望把自己学习的一些经验也用博客的方式分享给新入门的童鞋们。其实我也不是老手,所以如果有错误之处还望各位看官指出。
OK,废话少说!和学习C语言的hello world一样,在嵌入式学习最开始的就是跑马灯程序,也就是让GPIO工作起来。
首先介绍一下自己的开发平台,硬件是THU的工物系开发的k_class v1.1,主控为freescale的Cortex-M4芯片MK20DN512,在开发板上有2个LED,八个按键,6个数码管,一个蜂鸣器,旋钮式可变电阻等常用外设。软件平台是使用CodeWarrior10.6,它是基于Eclipse内核开发的,所以虽然以前没有用过CodeWarrior但是界面还是比较熟悉的,据说它的功能很强大的哦,搞起奋斗
好,首先来理清一下思路,为了让LED灯能够亮起来,分以下三部曲:(1)查看原理图弄清楚LED连接的是哪几个GPIO;(2)打开对应的GPIO的时钟,配置相关的引脚控制寄存器(Pin Control Register),数据的输入输出方向;(3)进行功能相关代码编写。
如图1所示,LEDs接到PTD4和PTD7这两个引脚。接下来是第(2)步,由于LEDs接到PTD上,所以首先要打开PORTD的时钟,那它在哪里呢?请看图2.
[size=18.399999618530273px]图2 系统集成模块的系统门控时钟5(SIM_SCGC5)
|