Cortex-M3 (NXP LPC1788)之GPIO

        经过前一篇的分析,现在可以进入C环境进行各个模块的学习。首先进行简单的GPIO控制LED灯的操作,开发板通过GPIO1.18控制LED灯,电路如下图:

GPIO_LED

        为了对LPC1788的内部结构有更好的理解和学习,虽然NXP给出了封装好的库函数,但是我将自己编写代码便于直接对内部原理进行分析。代码如下

#define rFIO1DIR	(*(volatile unsigned*)0x20098020) //高速GPIO 方向控制寄存器,用于配置管脚的输入或输出,默认为输入
#define rFIO1MASK 	(*(volatile unsigned*)0x20098030) //高速GPIO 屏蔽寄存器,被屏蔽的位将不能进行GPIO的控制操作,默认无效
#define rFIO1PIN	(*(volatile unsigned*)0x20098034) //高速GPIO 管脚值寄存器,可以操作未被FIOXMASK屏蔽的GPIO端口
#define rFIO1SET	(*(volatile unsigned*)0x20098038) //高速GPIO 管脚置位寄存器,置一操作使相应位输出高电平
#define rFIO1CLR	(*(volatile unsigned*)0x2009803c) //高速GPIO 管脚清楚寄存器,置一操作使相应位输出低电平

void Delay(int);
int main(void)
{
	rFIO1DIR |= (1<<18);//GPIO1.18 -> OUTPUT
	while(1)
	{
		rFIO1SET |= (1<<18);//输出高电平 可以用 rFIO1PIN |= (1<<18); 
		Delay(500000);
		rFIO1CLR |= (1<<18);//输出低电平 可以用 rFIO1PIN &= ~(1<<18);
		Delay(500000);
	}
			
}

void Delay(int i)
{
	int k;
	for(k=0; k<i; k++);
}


void SystemInit (void)
{
	
}


        程序比较简单,对于GPIO的操作我们可以使用输出置位寄存器FIOXSET和输出清零寄存器FIOXCLR进行操作,也可以直接使用GPIO管脚值寄存器FIOXPIN进行操作。程序最后写了一个void SystemInit(void)空函数,是因为在启动程序startup_LPC177x_8x.S中 IMPORT  SystemInit 声明了一个外部函数,并且LDR     R0, =SystemInit执行该函数。如果不定义该函数编译会报错。 我们可以在该函数中进行LPC1788的时钟初始化。我们的程序中没有进行初始化,根据LPC1788的数据手册,系统上电或任何复位,将使用内部的IRC作为时钟源。而后可以在软件上进行切换,而该切换就可以在void SystemInit(void)中实现。

        最后可以使用之前环境搭建中介绍的进行Debug调试或者下载程序。

前言: SmartCortex M3-1788开发板是广州致远电子股份有限公司精心设计的一款集教学、竞赛、实验于一身的开发套件,套件以NXP公司的LPC1788为核心,该芯片具有EMC(外部总线接口),支持SDRAM和NOR Flash扩展,并提供5路串口、1路10/100M以太网接口、2个CAN-bus接口、1路I2S接口、1路USB OTG接口、1路USB Host接口、一个可支持STN和TFT液晶的高性能LCD控制器。 硬件配置 核心板 工业级芯片LPC1788FET208,该芯片采用Cortex M3内核,主频高达120MHz全面支持LPC178x/LPC177x系列ARM LPC178x系列ARM集成高性能LCD控制器及支持外部总线扩展 板上集成8MB的SDRAM、2MB的Nor Flash,为多种嵌入式操作系统提供足够的硬件资源 板上集成10/100M以太网PHY 底板 1路SD/MMC卡接口 2路USB接口(1路OTG接口、1路Host接口) 1路10/100M以太网接口 1路MODEN接口,支持RS-485/EIA-485和DMA操作 1路标准UART接口,支持RS-485/EIA-485和DMA操作 1路I2S音频接口,可实现高保真的音频输入/输出功能 1路电机PWM接口 1路液晶屏接口,标配3.5寸(320× 240)TFT液晶屏 1路微打接口,支持ZYTP58-FR4C 1路带电气隔离的RS-485接口 1路带电气隔离的CAN,可轻松实现CAN-bus功能 软件资源 USB HOST相关例程 EEPROM相关例程 ADC/DAC相关例程 IAP相关例程 PWM(MCPWM)相关例程 QEI相关例程 事件监控器相关例程 定时器相关例程 UART相关例程 微型打印机相关例程 NVIC相关例程等 USB Device相关例程 USB OTG相关例程 以太网(TCP/UDP)相关例程 CAN通信相关例程 LCD控制器相关例程(支持ZLG/GUI) SD卡相关例程(支持SDHC) EMC相关例程(支持SDRAM/Nor Flash) I2S相关例程(支持UDA1380) CRC硬件校验 附件内容见截图:
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值