本帖最后由 强仔00001 于 2015-2-17 01:12 编辑
今天点了个灯,看了原理图知道这个板子引出3个IO口开控制套件上的3色贴片的led。如下图:
从原理可以看出这个3色led是共阳的,也就是说,我把相应的IO置低就可以控制某个led亮或者组合成其他颜色。
我现在就用就用Keil 5来点亮板子上的LED,keil 5相比其他的版本变了不少,关于keil的这方面我就不多说了。现在直入主题,要点亮板子上的led。
我这里修改了keil 5的自带的例程,keil 5自带的LED API要修改才能用。
首先LPC54102有两组IO,分别是PIO0和PIO1,如下图:
我们的板子上用了PIO0的29,30和31脚。
我们要用到这3个IO输出低电平,即可点亮板子上的led,首先我要打开这组IO口的时钟,这个是cortex - m系列一个特点,所有外设都是有时钟控制。你一旦要使用什么外设,第一件事是要打开相应外设的时钟。那我们现在要解决的问题就是要打开PIO0的时钟了,经过查手册知道,GPIO都是挂在AHB桥上的,如下图:
那怎么打开PIO0的时钟呢?那就要找System configuration (SYSCON),这里面的寄存器了,从名字上看,顾名思义这个跟系统配置相关的;从手册提供的说明,我们可以知道他有打开外设时钟的功能,如下图:
继续往下找,我们就可以找到控制PIO0时钟的寄存器AHBCLKCTRL0,可以查到他的第14 bit就是控制PIO0的时钟开关,写1就是开,写0就是关闭,如下图说明:
LPC_SYSCON->AHBCLKCTRLSET0 = (1UL<< 14);例程的这段代码就是代表打开PIO0的时钟。打开GPIO的时钟,就可以进行IO方向的设置,我就要设置P0_29, P0_30和P0_31这三个管脚设置为输出,我跳到GPIO这个章节找资料。可以查到GPIO里的DIR寄存器就是控制管脚的方向,
例如:LPC_GPIO->DIR0 = 1 << 29;就是将PIO0_29管脚设置输出。
接下来我们就要控制管脚的电平来熄灭或者点亮led。查手册可以查到SET和CLR就是置高和置低IO的,如手册的部分截图:
当我们要点亮led时就对CLR置一。熄灭就对SET置一。
还有要注意的是板子如果没有对系统时钟配置的,就会默认启动内部的12M晶振,用12M作为系统时钟。
我这里就没有对时钟初始化,使用了默认的内部12M晶振作为系统时钟
这里我就简单说说建工程的方法:
在keil 5建工程变得很简单了。这里建工程的时我们会进入这个界面,这里我就选上了3个选项,加了个LED API进去,其他的两个一定要添加。
弄好简单的工程后,还有一个仿真器配置的重要环节,如下图:
我就点亮个绿色的led灯,效果图:
这盏灯真够亮瞎眼的 下面就是我的源代码: