NXP-LPC1768起步之开发环境搭建与GPIO

1.环境搭建

本工程使用ARM公司MDK414.低版本的可能会导致在MDK中无法下载调试程序。仿真器使用SEGGER公司JlinkV7。

首先新建工程GPIO,选择路径保存,然后会出现选择芯片界面


然后确定新建主文件main.c并追加到工程。

在设置中Option for Target--> Debug中选择Cortesx-M/R J-LINK/J_Trace然后Setting

让系统自动识别Jlink(需要先装好Jlink的驱动,硬件连接好)


Port选SW模式

然后在flash download 中选择编程算法LPC17XX IAP 512kB flash,确定Debug。

然后在Utility中同样按照Debug中选择设定


在Output中勾选Create HEX File,可以生成16进制可执行文件。确定设置就OK。

2.GPIO程序

GPIO操作主要需要配置IO口,IO口为多功能口,设置为IO口,主要设置PINSEL寄存器。然后模式寄存器PINMODE,选择使能上下拉电阻。再然后需要设置IO输入输出寄存器FIODIR。IO口高低电平控制有两种方法,都需要打开MIOMASK(默认是打开的),一种是配置FIOPIN使IO输出高低电平,另一种是配置FIOSET和FIOCLR向对应位写一使IO管脚相应输出高低电平。

/*************************************************************************************	  
*	main.c:  the main file 
*	NXP --> LPC1768
*
*   
*	Author	:	light					
*	Date	:	2012-4-12  
*
***************************************************************************************/

#include<LPC17XX.h>

/********************************************************************************
** Descriptions			:Function that initializes LEDs
**
** parameters			:None
** Returned value		:None
*********************************************************************************/
void DelayMs(unsigned int m)
{
	int i,j;
	for(i=m;i>0;i--)
	{
		for(j=3000;j>0;j--);
	}

}
/*--------------------------------------------------------------------------------

PINSEL0 引脚名称	00 			01 			10 		11 			复位值	 
1:0 	P0.0 		GPIO P0.0 	RD1 		TXD3 	SDA1 		00	 
3:2 	P0.1 		GPIO P0.1 	TD1 		RXD3 	SCL1 		00	 
5:4 	P0.2 		GPIO P0.2 	TXD0 		AD0.7 	保留		00 	 
7:6 	P0.3 		GPIO P0.3 	RXD0 		AD0.6 	保留		00 	 
9:8 	P0.4 		GPIO P0.4 	I2SRX_CLK	RD2 	CAP2.0 		00	 
11:10 	P0.5 		GPIO P0.5 	I2SRX_WS 	TD2 	CAP2.1 		00	 
13:12 	P0.6 		GPIO P0.6 	I2SRX_SDA	SSEL1 	MAT2.0 		00	 
15:14 	P0.7 		GPIO P0.7 	I2STX_CLK	SCK1 	MAT2.1 		00	 
17:16 	P0.8 		GPIO P0.8 	I2STX_WS 	MISO1 	MAT2.2 		00	 
19:18 	P0.9 		GPIO P0.9 	I2STX_SDA	MOSI1 	MAT2.3 		00	 
21:20 	P0.10 		GPIO P0.10 	TXD2 		SDA2 	MAT3.0 		00	 
23:22 	P0.11 		GPIO P0.11 	RXD2 		SCL2 	MAT3.1 		00	 
29:24 	- 			保留		保留		保留	保留		0	 
31:30 	P0.15 		GPIO P0.15 	TXD1 		SCK0 	SCK 		00	 
 
--------------------------------------------------------------------------------*/

/*--------------------------------------------------------------------------------

PINMODE0 	符号	值		描述											复位值	 
							PORT0引脚0片内上拉/下拉电阻控制

1:0 	P0.00 模式	00    	P0.0引脚使能上拉电阻							 00
					01 		P0.0引脚使能中继模式
					10		P0.0引脚既不上拉,也不下拉
					11		P0.0引脚使能下拉电阻 	 
… 	 		

31:30 	P0.15模式		PORT0引脚P0.15片内上拉/下拉电阻控制	00 	 

--------------------------------------------------------------------------------*/

/*--------------------------------------------------------------------------------

位		符号		值		描述							复位值	 
31:0 	FP0DIR     	 		高速GPIO方向PORTx控制位。		0x0 	 
		FP1DIR				FIOxDIR的位0控制引脚Px.0,
		FP2DIR		 		FIOxDIR的位31控制引脚Px.31
		FP3DIR		0		控制的引脚为输入引脚
		FP4DIR		1		控制的引脚为输出引脚
		
--------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------

位		符号		值		描述								复位值	 
	 
31:0 	FP0SET     	  		高速GPIO输出值设置位。 	 	 		0x0 
		FP1SET				FIOxSET的位0控制引脚Px.0,
		FP2SET				FIOxSET的位31控制引脚Px.31
		FP3SET		 0		控制的引脚输出不改变
		FP4SET		 1		控制的引脚输出被设为高电平

--------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------

位		符号		值		描述								复位值	 

31:0 	FP0CLR     	  		高速GPIO输出值清零位。 	 
		FP1CLR				FIOxCLR的位0控制引脚Px.0,
		FP2CLR				FIOxCLR的位31控制引脚Px.31
		FP3CLR		0		控制的引脚输出不改变
		FP4CLR		1		控制的引脚输出设为低电平	0x0 

--------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------

位		符号		值		描述							复位值	
 
31:0 	FP0VAL     	  		高速GPIO输出值设置位。			0x0 	 
		FP1VAL				FIOxPIN的位0对应引脚Px.0,
		FP2VAL				FIOxPIN的位31对应引脚Px.31 
		FP3VAL		 0		控制的引脚输出设为低电平
		FP4VAL		 1		控制的引脚输出设为高电平

--------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------

位		符号		值		描述											复位值	 
																			0x0  
31:0 	FP0MASK     0	  	高速GPIO物理引脚访问控制受到FIOxSET、FIOxCLR和FIOxPIN寄存器的写操作影响。	 
		FP1MASK				控制的引脚引脚的当前状态可从FIOxPIN寄存器中读出。
		FP2MASK				 
		FP3MASK	    1		控制的引脚不受FIOxSET、FIOxCLR和FIOxPIN寄存器的写操作影响。
		FP4MASK				读取FIOxPIN寄存器时,该位将不会通过物理引脚的状态更新

--------------------------------------------------------------------------------*/

/********************************************************************************
** Descriptions			:Function that initializes LEDs
**
** parameters			:None
** Returned value		:None
*********************************************************************************/
void LedInit(void) 
{
	// PINSEL4,PINSEL5 设定P2.0 -- P2.32 端口功能(00,01,10,11)
	LPC_PINCON->PINSEL4 &= 0XFFFF0000;			// p2.0--p2.7设置为IO 

	LPC_PINCON->PINMODE4 &= 0XFFFF0000;			// p2.0--p2.7设置为上拉电阻使能

	LPC_GPIO2->FIODIR |= 0X000000FF;	 		// p2.0--p2.7设置为输出

}
/********************************************************************************
** Descriptions			:Function that LED on
**
** parameters			:n , which led is on
** Returned value		:None
*********************************************************************************/
void LedNOn(unsigned int n)
{
	LPC_GPIO2->FIOSET = (1<<n);		
}
/********************************************************************************
** Descriptions			:Function that LED off
**
** parameters			:n , which led is 0ff
** Returned value		:None
*********************************************************************************/
void LedNOff(unsigned int n)
{
	LPC_GPIO2->FIOCLR = (1<<n);		
}

/*----------------------------------------------------------------------------
  The main Function 
 *----------------------------------------------------------------------------*/
int main(void)
{
	int loc;
	SystemInit();
	LedInit();	  

	while(1)
	{
		for(loc=7;loc>=0;loc--)
		{
			LedNOn(loc);
			DelayMs(1000);

			LedNOff(loc);
			DelayMs(1000);
		}
	

	}

}


  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要搭建NXP1768开发环境,你可以按照以下步骤进行操作: 1. 安装Visual Studio Code(VSCode):前往VSCode官网(https://code.visualstudio.com/)下载并安装最新版本的VSCode。 2. 安装MBED扩展:在VSCode中,点击左侧的扩展图标(四个方块),搜索并安装"Mbed"扩展。这个扩展提供了MBED平台的支持。 3. 配置MBED工具链:在VSCode中,按下`Ctrl + Shift + P`(或者点击"View"菜单,选择"Command Palette"),然后输入"Mbed: Configure Toolchain"并选择该命令。按照提示选择"GCC_ARM"作为工具链。 4. 安装MBED CLI:在终端中运行以下命令来安装MBED CLI: ``` pip install mbed-cli ``` 5. 初始化MBED项目:在VSCode中,按下`Ctrl + Shift + P`,然后输入"Mbed: New Program"并选择该命令。然后输入项目的名称,并选择"NXP LPC1768"作为目标平台。 6. 配置MBED平台:在VSCode中,打开".mbed"文件夹,编辑"mbed_settings.py"文件。确保以下设置正确: ``` TARGET = 'LPC1768' TOOLCHAIN = 'GCC_ARM' ``` 7. 编译和烧录程序:在VSCode中,按下`Ctrl + Shift + P`,然后输入"Mbed: Compile"并选择该命令。这将编译你的程序,并生成一个二进制文件。将生成的二进制文件烧录到NXP1768开发板上。 现在,你已经成功搭建了NXP1768的VSCode开发环境,可以开始进行开发了。如果需要更详细的指导,你可以参考MBED官方文档(https://os.mbed.com/docs/mbed-os/v6.14/)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值