阿哲
发表于: 2019-4-8 17:37:45 | 显示全部楼层

LPC845-BRK开发板是价格低于6美元的微型开发板,上面带有一颗ARM Cortex-M0 +。本篇文章主要介绍如何使用MCUXpresso IDE开发blinky示例程序。

binky-on-nxp-lpc845-brk-board.png

在恩智浦LPC845-BRK开发板上运行Binky


安装MCUXpresso IDE和SDK

本文需要一下硬件和软件:

●    恩智浦LPC845-BRK开发板

●    恩智浦MCUXpresso IDE

●    适用于LPC845的恩智浦MCUXpresso SDK


首先从http://www.nxp.com/mcuxpresso/ide下载NXP MCUXpresso IDE,然后使用默认选项进行安装。


转到http://mcuxpresso.nxp.com/,并选择LPC845 SDK(目前还没有适用于该开发板的SDK)。我建议您使用所有可用的软件组件配置SDK。

sdkforlpc845.png

适用于LPC845的SDK


启动IDE(您可以使用默认工作区)并通过拖放操作将SDK(zip文件)导入到“Installed SDKs”视图中:

sdk-for-lpc845.png

适用于LPC845的SDK


新建项目

创建一个新项目:

create-new-project.png

创建新项目


选择LPC845,然后按Next

lpc845.png

LPC845


在Device package选择LPC845M301JBD48。因为我们将使用GPIO作为电路板上的LED,所以请确保包含此驱动程序。然后按完成:

sdk-wizard.png

SDK向导


这样,我们就有一个Blinky的项目:

blinky-project-created.png

创建的Blinky项目


LED引脚

接下来,我们为电路板上的LED配置引脚。从原理图中我们得到这些信息:

●    PIO1_0连接绿色灯

●    PIO1_1连接蓝色灯

●    PIO1_2连接红色灯

gpio-rgb-led-pins-on-lpc845-brk.png

LPC845-BRK上的GPIO RGB LED引脚


引脚需要复用为GPIO输出引脚。选择项目并打开“引脚”工具:

open-pins-tool.png

打开引脚工具


将PIO1_0、PIO1_1和PIO1_2配置为GPIO引脚。最简单的方法是双击GPIO单元格条目:

configured-led-gpio-pins.png

配置的LED GPIO引脚


将标识符添加到引脚,例如LEDG、LEDB和LEDR。我们将在代码中使用为引脚创建的#defines:

identifiers-for-the-pins.png

引脚的标识符


Update项目的修改的内容改更新源:

update-project.png

更新项目


它会要求确认更改。按确定。

updating-projekct.png

更新项目


切换回Develop Perspective。

develop-perspective.png

Develop Perspective


所有设置都存储在.mex文件中。我可以稍后双击该文件再次打开设置:

mex-file.png

MEX文件


更新时钟

对于LED,我们使用GPIO端口1,我们必须首先取消时钟,否则GPIO引脚将无法工作。


将以下内容添加到#include:

  1. #include "fsl_gpio.h"
复制代码

添加以下代码以取消时钟:

  1. GPIO_PortInit(GPIO, 1); /* ungate the clocks for GPIO_1 */
复制代码

ungating-gpio-1.png

取消GPIO 1


配置GPIO引脚

接下来,我们必须将GPIO引脚配置为输出引脚,其初始值为HIGH(1)。将以下配置添加到您的代码中:

  1. /* configuration for LOW active GPIO output pin */
  2. static const gpio_pin_config_t configOutput = {
  3. kGPIO_DigitalOutput,  /* use as output pin */
  4. 1,  /* initial value */
  5. };
复制代码

并使用该配置初始化所有引脚:

  1. /* initialize pins as output pins */
  2. GPIO_PinInit(BOARD_INITPINS_LEDR_GPIO, BOARD_INITPINS_LEDR_PORT, BOARD_INITPINS_LEDR_PIN, &configOutput);
  3. GPIO_PinInit(BOARD_INITPINS_LEDG_GPIO, BOARD_INITPINS_LEDG_PORT, BOARD_INITPINS_LEDG_PIN, &configOutput);
  4. GPIO_PinInit(BOARD_INITPINS_LEDB_GPIO, BOARD_INITPINS_LEDB_PORT, BOARD_INITPINS_LEDB_PIN, &configOutput);
复制代码

请注意,我在先前在引脚工具中定义的宏中使用了标识符(LEDG、LEDB和LEDR)。

gpio-init-pins.png

GPIO Init Pins


延迟

要减慢LED闪烁,请在代码中添加延迟函数:

  1. static void delay(void) {
  2.   for(int i=0;i<100000;i++) {
  3.     __asm("nop");
  4.   }
  5. }
复制代码

delay.png

延迟函数


Blinky代码

最后,向应用程序添加一些Blinky代码。下面的代码将打开和xi每个led,延迟介于:

  1. for(;;) { /* blinky, blinky, blinky! */
  2.   /* red */
  3.   GPIO_PortClear(BOARD_INITPINS_LEDR_GPIO, BOARD_INITPINS_LEDR_PORT, 1<<BOARD_INITPINS_LEDR_PIN); /* turn on */
  4.   delay();
  5.   GPIO_PortSet(BOARD_INITPINS_LEDR_GPIO, BOARD_INITPINS_LEDR_PORT, 1<<BOARD_INITPINS_LEDR_PIN);  /* turn off */

  6.   /* green */
  7.   GPIO_PortClear(BOARD_INITPINS_LEDG_GPIO, BOARD_INITPINS_LEDG_PORT, 1<<BOARD_INITPINS_LEDG_PIN); /* turn on */
  8.   delay();
  9.   GPIO_PortSet(BOARD_INITPINS_LEDG_GPIO, BOARD_INITPINS_LEDG_PORT, 1<<BOARD_INITPINS_LEDG_PIN);  /* turn off */

  10.   /* blue */
  11.   GPIO_PortClear(BOARD_INITPINS_LEDB_GPIO, BOARD_INITPINS_LEDB_PORT, 1<<BOARD_INITPINS_LEDB_PIN); /* turn on */
  12.   delay();
  13.   GPIO_PortSet(BOARD_INITPINS_LEDB_GPIO, BOARD_INITPINS_LEDB_PORT, 1<<BOARD_INITPINS_LEDB_PIN);  /* turn off */
  14. }
复制代码

blinky-code.png

Blinky Code


构建和调试

是时候构建,然后在连接板的情况下调试它:

build-and-debug.png

构建和调试


将主板连接到主机后,IDE会自动识别开发板:

probes-discovered.png

发现调试器


按确定,调试器正在加载代码:

debugging-the-board.png

调试开发板



总结

虽然LPC845-BRK开发板还没有专门的SDK,但是为它创建一个非常简单易用的应用程序。 使用恩智浦MCUXpresso SDK、IDE和配置工具,只需在应用程序代码中使用几行即可使用开发板上的LED或任何GPIO引脚。

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 53 | 回复: 76



手机版|

GMT+8, 2024-4-19 11:00 , Processed in 0.139648 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表