| 
在线时间194 小时
UID361789
注册时间2008-4-28
NXP金币0 
 TA的每日心情|  | 开心 2020-4-30 21:50
 | 
|---|
 签到天数: 17 天 连续签到: 1 天 [LV.4]偶尔看看III 金牌会员  
 
	积分1208 
最后登录2023-2-28 | 
 
| 本帖最后由 yanxinboy 于 2020-12-21 17:50 编辑 
 由于个人身体原因,住院三周,这个冬日里昏昏沉沉,荒废了。周末好不容易逃出来了,继续学习。接上次的环境搭建https://www.nxpic.org.cn/module/forum/thread-621348-1-1.html,今天来学习下MCUXpresso 的 ConfigTools的使用,计划在熟悉的基础上点亮我们的RGB LED.
 
 这里我们还是选择了LPC55S69开发板对应的LED_BLINKY DEMO 程序作为基础,首先让我们通过以下截图来直观的了解下ConfigTools的界面。
 
   ConfigTools可以通过下拉菜单“ConfigToos"或以上截图右上角的快捷图片在代码与配置工具间切换。目前MCUXpresso IDE 含以下5种配置工具
 
   1. Pins 工具用于配置管脚并产生"pin_mux.c & .h" 源文件。
 2. Clocks工具用于配置系统各时钟并产生"clock_config.c & .h"文件。
 3. Peripherals 工具用于配置设备并生产"Peripherals.c & .h"文件。
 4. TEE 工具用于配置安全策略,实现代码按安全隔离,工具生成"tzm_config.c & .h"文件。
 5. Device Configuration 工具配置初始内存空间并产生"dcd.d & .h "文件。由于LPC55S69开发板对应的DEMO程序与OKdo E1开发板的LED不太一样,这里我们在PIN配置工具下添加PIO1_6和PIO1_7,并在管脚配置清单下选择IO引脚的方向Direction 和 GPIO 初始状态Initial state. (E1板对应LED连接请参见原理图)。配置完成后,点击Update Code, IDE将按以上提到的源文件更新代码。 这里我们在BOARD.H文件中修改对应硬件连接并按E1板的LED颜色修改宏定义
 
 然后我们可以去PIN_MUX.H文件夹查看到新添加的两个GPIO口已添加到初始化代码中,如下:复制代码#define BOARD_LED_RED_GPIO_PORT 1U
#ifndef BOARD_LED_RED_GPIO_PIN
#define BOARD_LED_RED_GPIO_PIN 4U
#endif
#ifndef BOARD_LED_BLUE_GPIO
#define BOARD_LED_BLUE_GPIO GPIO
#endif
#define BOARD_LED_BLUE_GPIO_PORT 1U
#ifndef BOARD_LED_BLUE_GPIO_PIN
#define BOARD_LED_BLUE_GPIO_PIN 6U
#endif
#ifndef BOARD_LED_GREEN_GPIO
#define BOARD_LED_GREEN_GPIO GPIO
#endif
#define BOARD_LED_GREEN_GPIO_PORT 1U
#ifndef BOARD_LED_GREEN_GPIO_PIN
#define BOARD_LED_GREEN_GPIO_PIN 7U
 可以看到以上完全与PIN CONFIG显示一致。复制代码/*! @name PIO1_6 (number 5), R80/P18[9]/LEDB/PWM_ARD
  @{ */
/* Symbols to be used with GPIO driver */
#define BOARD_LED_RED_GPIO GPIO                /*!<@brief GPIO peripheral base pointer */
#define BOARD_LED_RED_GPIO_PIN_MASK (1U << 6U) /*!<@brief GPIO pin mask */
#define BOARD_LED_RED_PORT 1U                  /*!<@brief PORT peripheral base pointer */
#define BOARD_LED_RED_PIN 6U                   /*!<@brief PORT pin number */
#define BOARD_LED_RED_PIN_MASK (1U << 6U)      /*!<@brief PORT pin mask */
                                               /* @} */
/*! @name PIO1_7 (number 9), R79/P18[7]/LEDG/PWM_ARD
  @{ */
/* Symbols to be used with GPIO driver */
#define BOARD_LED_GREEN_GPIO GPIO                /*!<@brief GPIO peripheral base pointer */
#define BOARD_LED_GREEN_GPIO_PIN_MASK (1U << 7U) /*!<@brief GPIO pin mask */
#define BOARD_LED_GREEN_PORT 1U                  /*!<@brief PORT peripheral base pointer */
#define BOARD_LED_GREEN_PIN 7U                   /*!<@brief PORT pin number */
#define BOARD_LED_GREEN_PIN_MASK (1U << 7U)      /*!<@brief PORT pin mask */
                                                 /* @} */
 这里我们修改主程序宏定义以显示蓝色LED. 代码如下:
 
 重新编译下载,E1板RBG LED 蓝色LED将闪烁。复制代码#define BOARD_LED_PORT BOARD_LED_BLUE_GPIO_PORT
#define BOARD_LED_PIN  BOARD_LED_BLUE_GPIO_PIN
   
 接下来,我们来用最简单粗暴的方式修改代码----仅用于演示,实现RGB LED 红绿蓝交替每秒闪烁。
 
 明天将学习板载按键中断(和LED配合)和 串口调试信息的使用。复制代码    while (1)
    {
        /* Delay 1000 ms */
        SysTick_DelayTicks(1000U);
        GPIO_PortSet(GPIO, BOARD_LED_BLUE_GPIO_PORT, 1u << BOARD_LED_BLUE_GPIO_PIN);
        GPIO_PortToggle(GPIO, BOARD_LED_RED_GPIO_PORT, 1u << BOARD_LED_RED_GPIO_PIN);
        SysTick_DelayTicks(1000U);
        GPIO_PortSet(GPIO, BOARD_LED_RED_GPIO_PORT, 1u << BOARD_LED_RED_GPIO_PIN);
        GPIO_PortToggle(GPIO, BOARD_LED_GREEN_GPIO_PORT, 1u << BOARD_LED_GREEN_GPIO_PIN);
        SysTick_DelayTicks(1000U);
        GPIO_PortSet(GPIO, BOARD_LED_GREEN_GPIO_PORT, 1u << BOARD_LED_GREEN_GPIO_PIN);
        GPIO_PortToggle(GPIO, BOARD_LED_BLUE_GPIO_PORT, 1u << BOARD_LED_BLUE_GPIO_PIN);
    }
 
 | 
 |