在线时间194 小时
UID361789
注册时间2008-4-28
NXP金币0
TA的每日心情 | 开心 2020-4-30 21:50 |
---|
签到天数: 17 天 [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颜色修改宏定义
- #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_MUX.H文件夹查看到新添加的两个GPIO口已添加到初始化代码中,如下:
- /*! @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 */
- /* @} */
复制代码 可以看到以上完全与PIN CONFIG显示一致。
这里我们修改主程序宏定义以显示蓝色LED. 代码如下:
- #define BOARD_LED_PORT BOARD_LED_BLUE_GPIO_PORT
- #define BOARD_LED_PIN BOARD_LED_BLUE_GPIO_PIN
复制代码 重新编译下载,E1板RBG LED 蓝色LED将闪烁。
接下来,我们来用最简单粗暴的方式修改代码----仅用于演示,实现RGB 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);
- }
复制代码 明天将学习板载按键中断(和LED配合)和 串口调试信息的使用。
|
|