在线时间116 小时
UID3123257
注册时间2016-10-11
NXP金币0
TA的每日心情 | 奋斗 2017-1-18 20:00 |
---|
签到天数: 45 天 连续签到: 1 天 [LV.5]常住居民I
高级会员

- 积分
- 533
- 最后登录
- 2024-11-23
|
本帖最后由 云淡风轻1213 于 2016-12-14 21:00 编辑
以前使用LPC系列的板子都是直接操作寄存器,现在LPC824给出的例程是封装好了的函数,今天拿到板子,就写了个寄存器版的,当然要感谢论坛另一位大神提供的LPC82xx.h这个文件,再加上system_LPC8XX.c和system_LPC8XX.h文件,就可以写程序了先贴个LPC824的图(盗的图——哈哈。。。)
下面说说步骤:一、建立工程
建立工程其实和其他工程建立一样,建立完成后如下如所示:
这样比较简单,不需要添加太多的东西
二、设置系统时钟
拿到板子发现居然没有晶振,想一想不知道是不是用的内部RC时钟,就设置成IRC吧,我们用图片操作的方式设置吧
设置好了就去选择OutPut选择生成hex文件用于烧录,暂时没有1.27mm的线,用不了仿真器,暂时用ISP下载吧(ISP下载其他大神写了教程我就不写了)
三、写代码
设置好了,就可以写自己的代码了,先写个点灯的吧
- #include"LPC8xx.h"
- #define LED1_ON LPC_GPIO_PORT->PIN0 &= ~(1<<15)
- #define LED1_OFF LPC_GPIO_PORT->PIN0 |= (1<<15)
- #define LED2_ON LPC_GPIO_PORT->PIN0 &= ~(1<<16)
- #define LED2_OFF LPC_GPIO_PORT->PIN0 |= (1<<16)
- #define LED3_ON LPC_GPIO_PORT->PIN0 &= ~(1<<17)
- #define LED3_OFF LPC_GPIO_PORT->PIN0 |= (1<<17)
- void delay()
- {
- uint16_t i,j;
- for(i=0;i<3000;i++)
- for(j=0;j<100;j++);
- }
- void led_int()
- {
- LPC_SYSCON->SYSAHBCLKCTRL |= (1<<16);
- LPC_IOCON->PIO0_15 &= ~0X07;
- LPC_IOCON->PIO0_15 |=0X01;
- LPC_IOCON->PIO0_16 &= ~0X07;
- LPC_IOCON->PIO0_16 |=0X01;
- LPC_IOCON->PIO0_17 &= ~0X07;
- LPC_IOCON->PIO0_17 |=0X01;
- LPC_SYSCON->SYSAHBCLKCTRL &= ~(1<<16);
-
- LPC_GPIO_PORT->DIR0 |= (1<<15);
- LPC_GPIO_PORT->PIN0 |= (1<<15);
- LPC_GPIO_PORT->DIR0 |= (1<<16);
- LPC_GPIO_PORT->PIN0 |= (1<<16);
- LPC_GPIO_PORT->DIR0 |= (1<<17);
- LPC_GPIO_PORT->PIN0 |= (1<<17);
- }
- int main()
- {
- SystemInit();
- led_int();
- while(1)
- {
- LED1_ON;
- delay();
- LED1_OFF;
- delay();
-
- LED2_ON;
- delay();
- LED2_OFF;
- delay();
-
- LED3_ON;
- delay();
- LED3_OFF;
- delay();
- }
- }
复制代码 四、现象
五、工程文件
是不是发现这是文件最小的工程,不过前面叙述也许有问题,望大神指正。(本来想拍个视频的,发现不会,好像还要传到优酷,再给链接到这里来,所以就拍了个照片,见谅,还有就是图片不是在对应的文字下面,怎么调也调不好,全都堆在一起了,第一次发贴,大家见谅。。。。。)
|
|