上次发表了
LPC1500体验+@1-入门环境熟悉【系列教程】
这次再发表第二讲
LPC1500体验+@2-点亮LED【系列教程】
声明:我的LPC1500系列体验文章全部为原创
工程代码如下:点击下载工程包
- #include "lpc15xx.h"
- int main(){
- LPC_SYSCON->SYSAHBCLKCTRL0|=1<<13|1<<14|1<<15|1<<16; //开启iocon,p0,p1,p2时钟
- LPC_GPIO_PORT->DIR[0]=1<<3|1<<25; //p0.3 p0.25设置为输出
- LPC_GPIO_PORT->DIR[1]=1<<1; //p1.1
- while(1){
- LPC_GPIO_PORT->B[32+1]=LPC_GPIO_PORT->B[17]; //p1.1(蓝色) p0.17 sw1按键, 当按键按下时蓝灯亮,否则灭
- LPC_GPIO_PORT->B[3]=!LPC_GPIO_PORT->B[17]; //p0.3(绿色) p0.17 当键弹起时亮
- }
- }
- void SystemInit(void){
- }
复制代码工程代码比较简单,以下是解说,
LPC_SYSCON->SYSAHBCLKCTRL0|=1<<13|1<<14|1<<15|1<<16;
这一步是开启相关时钟,默认情况下,GPIO0,1,2时钟是未开启的,所以一定要开启才能使用,这点见用户手册53页(手册可以在我的第一篇系列文章中下载)
LPC_GPIO_PORT->DIR[0]=1<<3|1<<25; //p0.3 p0.25设置为输出
LPC_GPIO_PORT->DIR[1]=1<<1; //p1.1
这个是设置相关的LED引脚为输出,当置1为输出,0为输入,默认为0
寄存器图:
LPC_GPIO_PORT->B[32+1]=LPC_GPIO_PORT->B[17]; //p1.1(蓝色) p0.17 sw1按键, 当按键按下时蓝灯亮,否则灭
LPC_GPIO_PORT->B[3]=!LPC_GPIO_PORT->B[17]; //p0.3(绿色) p0.17 当键弹起时亮
这两行内容,见上边,B0-B31分别对应P0.0-P0.31
B32-B63对应P1.0-P1.31,这个寄存器是8位的,只有位0是有效数据,
此寄存器可读可写,但功能是不一样的,
读的时候访问的是IO引脚的实际电平,高电平即1,低电平即0
写的时候,是设置引脚的输出电平(当为输出的时候),写1输出高电平,写0输出低电平
所以上边代码很容易理解了吧
GPIO寄存器比较多,但很简单,可以单个引脚访问,也可以32位为一组访问,这点比较灵活。之前的LPC11XX是没有这个功能的
只能32位寄存器一起设置,这样生成的代码量较大
开发板原理图,可见SW1是连接在P0-17引脚上的。
开发板原理图,可见REB-LED分别连接在P1.1,P0.3引脚上的,
1
LPC1500体验+@1-入门环境熟悉【系列教程】
2 LPC1500体验+@2-点亮LED【系列教程】
3 LPC1500体验+@3-GPIO中断
正在编辑中
本文来自论坛,点击查看完整帖子内容。