查看: 1323|回复: 1

[分享] 【NXP OKdo E1双核Cortex M33开发板 】MCUXpresso ConfigTools

[复制链接]
  • TA的每日心情
    开心
    2020-4-30 21:50
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    9

    主题

    142

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1208
    最后登录
    2023-2-28
    发表于 2020-12-21 17:50:53 | 显示全部楼层 |阅读模式
    本帖最后由 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的界面。
    1.png
    ConfigTools可以通过下拉菜单“ConfigToos"或以上截图右上角的快捷图片在代码与配置工具间切换。目前MCUXpresso IDE 含以下5种配置工具
    2.PNG
    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颜色修改宏定义
    1. #define BOARD_LED_RED_GPIO_PORT 1U
    2. #ifndef BOARD_LED_RED_GPIO_PIN
    3. #define BOARD_LED_RED_GPIO_PIN 4U
    4. #endif

    5. #ifndef BOARD_LED_BLUE_GPIO
    6. #define BOARD_LED_BLUE_GPIO GPIO
    7. #endif
    8. #define BOARD_LED_BLUE_GPIO_PORT 1U
    9. #ifndef BOARD_LED_BLUE_GPIO_PIN
    10. #define BOARD_LED_BLUE_GPIO_PIN 6U
    11. #endif

    12. #ifndef BOARD_LED_GREEN_GPIO
    13. #define BOARD_LED_GREEN_GPIO GPIO
    14. #endif
    15. #define BOARD_LED_GREEN_GPIO_PORT 1U
    16. #ifndef BOARD_LED_GREEN_GPIO_PIN
    17. #define BOARD_LED_GREEN_GPIO_PIN 7U
    复制代码
    然后我们可以去PIN_MUX.H文件夹查看到新添加的两个GPIO口已添加到初始化代码中,如下:
    1. /*! @name PIO1_6 (number 5), R80/P18[9]/LEDB/PWM_ARD
    2.   @{ */

    3. /* Symbols to be used with GPIO driver */
    4. #define BOARD_LED_RED_GPIO GPIO                /*!<@brief GPIO peripheral base pointer */
    5. #define BOARD_LED_RED_GPIO_PIN_MASK (1U << 6U) /*!<@brief GPIO pin mask */
    6. #define BOARD_LED_RED_PORT 1U                  /*!<@brief PORT peripheral base pointer */
    7. #define BOARD_LED_RED_PIN 6U                   /*!<@brief PORT pin number */
    8. #define BOARD_LED_RED_PIN_MASK (1U << 6U)      /*!<@brief PORT pin mask */
    9.                                                /* @} */

    10. /*! @name PIO1_7 (number 9), R79/P18[7]/LEDG/PWM_ARD
    11.   @{ */

    12. /* Symbols to be used with GPIO driver */
    13. #define BOARD_LED_GREEN_GPIO GPIO                /*!<@brief GPIO peripheral base pointer */
    14. #define BOARD_LED_GREEN_GPIO_PIN_MASK (1U << 7U) /*!<@brief GPIO pin mask */
    15. #define BOARD_LED_GREEN_PORT 1U                  /*!<@brief PORT peripheral base pointer */
    16. #define BOARD_LED_GREEN_PIN 7U                   /*!<@brief PORT pin number */
    17. #define BOARD_LED_GREEN_PIN_MASK (1U << 7U)      /*!<@brief PORT pin mask */
    18.                                                  /* @} */
    复制代码
    可以看到以上完全与PIN CONFIG显示一致。

    这里我们修改主程序宏定义以显示蓝色LED. 代码如下:
    1. #define BOARD_LED_PORT BOARD_LED_BLUE_GPIO_PORT
    2. #define BOARD_LED_PIN  BOARD_LED_BLUE_GPIO_PIN
    复制代码
    重新编译下载,E1板RBG LED 蓝色LED将闪烁。
    4.PNG

    接下来,我们来用最简单粗暴的方式修改代码----仅用于演示,实现RGB LED 红绿蓝交替每秒闪烁。
    1.     while (1)
    2.     {
    3.         /* Delay 1000 ms */
    4.         SysTick_DelayTicks(1000U);
    5.         GPIO_PortSet(GPIO, BOARD_LED_BLUE_GPIO_PORT, 1u << BOARD_LED_BLUE_GPIO_PIN);
    6.         GPIO_PortToggle(GPIO, BOARD_LED_RED_GPIO_PORT, 1u << BOARD_LED_RED_GPIO_PIN);
    7.         SysTick_DelayTicks(1000U);
    8.         GPIO_PortSet(GPIO, BOARD_LED_RED_GPIO_PORT, 1u << BOARD_LED_RED_GPIO_PIN);
    9.         GPIO_PortToggle(GPIO, BOARD_LED_GREEN_GPIO_PORT, 1u << BOARD_LED_GREEN_GPIO_PIN);
    10.         SysTick_DelayTicks(1000U);
    11.         GPIO_PortSet(GPIO, BOARD_LED_GREEN_GPIO_PORT, 1u << BOARD_LED_GREEN_GPIO_PIN);
    12.         GPIO_PortToggle(GPIO, BOARD_LED_BLUE_GPIO_PORT, 1u << BOARD_LED_BLUE_GPIO_PIN);
    13.     }
    复制代码
    明天将学习板载按键中断(和LED配合)和 串口调试信息的使用。

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3300

    主题

    6547

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32030
    最后登录
    2024-4-26
    发表于 2020-12-21 18:05:59 | 显示全部楼层
    冬至快乐,注意身体!
    签到签到
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-26 13:38 , Processed in 0.109688 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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