基于LPC1114的學(xué)習(xí)型紅外遙控器
一、LPC11XX GPIO操作
本文引用地址:http://cafeforensic.com/article/201608/295296.htm2010年3月8日,一個(gè)讓我:(作者,非本人:)刻骨銘心的日子,38婦女節(jié),收到婷婷的電路板非常高興,盼望半年之久的LPC CM0終于拿到了。
在此對(duì)婷婷的表示衷心的感謝,感謝黨,感謝人民給我這次學(xué)習(xí)機(jī)會(huì)。閑話少說(shuō),進(jìn)入正題。
LPC11XX我就不介紹了。學(xué)習(xí)型紅外遙控器也不介紹了。有不懂的地方大家可以baidu一下。
本設(shè)計(jì)就是采用LPC1114+OLED+紅外接收頭構(gòu)成一個(gè)學(xué)習(xí)型紅外遙控器,
安裝LPCxpress,后插入LPC-Link 自動(dòng)識(shí)別,
系統(tǒng)多出一個(gè)
然后打開(kāi)11XX的例程,正常安裝路徑在C:nxp lpcxpresso_3.1ExamplesLPC1000LPC11xx下
文件名字 LPCXpresso1114_v1.00.zip
然后點(diǎn)擊GPIO程序,打開(kāi)GPIOtest.c開(kāi)始學(xué)習(xí)。
發(fā)現(xiàn)和普通的 8位機(jī)真的相差很多,用了很多類(lèi)似函數(shù)(庫(kù))的東西。
別的不管,先來(lái)個(gè)最簡(jiǎn)單的閃爍燈。
找到函數(shù)
功能:(設(shè)置 GPIO口方向),參數(shù)(端口號(hào),位,輸入或輸出(0入1出))
GPIOSetDir( PORT0, 1, 0 );
和
GPIOSetValue()
一個(gè)是設(shè)置端口方向,一個(gè)是設(shè)置輸出的值,直接調(diào)用就可以了。
下面是我的程序,本人菜鳥(niǎo)一只,程序也不會(huì)寫(xiě),希望大家拍磚的話,別往死里拍,呵呵。
用的是P32的口。輸出1的時(shí)候點(diǎn)亮LED。
/*****************************************************************************
* gpiotest.c: main C entry file for NXP LPC11xx Family Microprocessors
*
* Copyright(C) 2008, NXP Semiconductor
* All rights reserved.
*
* History
* 2009.12.07 ver 1.00 Preliminary version, first Release
*
******************************************************************************/
#include "LPC11xx.h" /* LPC11xx Peripheral Registers */
#include "gpio.h"
/*****************************************************************************
** Main Function main()
******************************************************************************/
int main (void)
{
/* Basic chip initialization is taken care of in SystemInit() called
* from the startup code. SystemInit() and chip settings are defined
* in the CMSIS system_.c file.
*/
uint32_t a=60000;
GPIOInit();
GPIOSetDir(PORT3,2,1);
while(1)
{
a=160000;
while(a--);
GPIOSetValue(PORT3,2,0);
a=160000;
while(a--);
GPIOSetValue(PORT3,2,1);
}
/* use port0_1 as input event, interrupt test. */
GPIOSetDir( PORT0, 1, 0 );
/* port0_1, single trigger, active high. */
GPIOSetInterrupt( PORT0, 1, 0, 0, 0 );
GPIOIntEnable( PORT0, 1 );
/* use port1_1 as input event, interrupt test. */
GPIOSetDir( PORT1, 1, 0 );
/* port0_1, single edge trigger, active high. */
GPIOSetInterrupt( PORT1, 1, 0, 0, 0 );
GPIOIntEnable( PORT1, 1 );
/* use port2_1 as input event, interrupt test. */
GPIOSetDir( PORT2, 1, 0 );
/* port0_1, single edge trigger, active high. */
GPIOSetInterrupt( PORT2, 1, 0, 0, 0 );
GPIOIntEnable( PORT2, 1 );
/* use port3_1 as input event, interrupt test. */
GPIOSetDir( PORT3, 1, 0 );
/* port0_1, single edge trigger, active high. */
GPIOSetInterrupt( PORT3, 1, 0, 0, 0 );
GPIOIntEnable( PORT3, 1 );
while( 1 );
}
/*********************************************************************************
** End Of File
*********************************************************************************/
[最后修改于2010-03-10 12:51:40]
使用Keil MDK +ULink2開(kāi)發(fā)LPC11XX
LPCXpresso軟件雖然不錯(cuò),但還是沒(méi)有常用的KEIL IAR 順手,怎么說(shuō)也是用慣了,一狠心,買(mǎi)了個(gè)ULINK2,從今天開(kāi)始使用MDK +ULink2開(kāi)發(fā)LPC1114。
先來(lái)介紹一下軟件部分,使用新版本 MDK 410B(www.mcu123.com有下載),無(wú)縫支持LPC1114,安裝完軟件后,ulink2插到電腦usb口可以自動(dòng)識(shí)別,新建工程,選NXP LPC1114 301 芯片,一路下來(lái)沒(méi)什么問(wèn)題,關(guān)鍵是ULINK2的配置。
上圖。
由于LPC11XX不支持JTAG ,所以只能用圖中的SW方式了。
硬件方面,LPC1114的板子需要修改,把LPC-LINK和LPC1114要斷開(kāi),就是電路圖J4的部分,把PCB劃開(kāi)后,焊上2.54間距排針,
以后想用LPCXpresso軟件帶LPC-link的話跳線就可以用了。一舉兩得。
上圖。
在來(lái)個(gè)圖。和閃爍燈的程序。
評(píng)論