查看: 173|回复: 0

[原创] 【MCX-N947分享】2、MCUXpressoIDE环境搭建、点个灯

[复制链接]
  • TA的每日心情
    开心
    昨天 10:06
  • 签到天数: 533 天

    [LV.9]以坛为家II

    6

    主题

    2840

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    4671
    最后登录
    2024-4-27
    发表于 2024-3-27 18:43:55 | 显示全部楼层 |阅读模式
    本帖最后由 ldptest 于 2024-3-28 08:46 编辑

    一、环境搭建
    NXP官方提供免费的IDE,直接去下载MCUXpresso IDE,选择windows版并安装,一路确认直至安装完成
    到这个帖子【资料】MCX-N9xx-BRK资料抢先看下载板子的SDK
        MCX-N947的SDK来了:
    网盘链接:https://pan.baidu.com/s/1YkS9d0CDOTSPbaeeu2NUQA?
    提取码:3vft

    打开MCUXpresso IDE,关闭欢迎窗,把SDK压缩包直接拖放到Installed SDKs窗口
    拖放.jpg

    安装完成后,窗口会出现安装了的SDK包
    已安装SDK.jpg

    点击SDK包,右侧会出现包内详细内容
    点击后.jpg

    二、新建项目
    在菜单中选择新建项目
    新建项目菜单.jpg

    选择ncxn9xxbrk板,并根据需要选择相应功能(我是新人,具体一些功能仍在摸索中)
    新建项目.jpg

    一路默认配置,建立了一个名字为MCXN947_Project项目
    我从没接触过MCUXpresso IDE,为了学习,打开一个相关SDK附带的例子
    打开例子.jpg
    选择led_blinky,并打开,照葫芦画瓢
    led.jpg

    我目的生成三色流水灯效果,以下是我的代码
    MCXN947_Project.c文件,#include后添加延时函数
    1. /*******************************************************************************
    2. * Variables
    3. ******************************************************************************/
    4. volatile uint32_t g_systickCounter;

    5. /*******************************************************************************
    6. * Code
    7. ******************************************************************************/
    8. void SysTick_Handler(void)
    9. {
    10.     if (g_systickCounter != 0U)
    11.     {
    12.         g_systickCounter--;
    13.     }
    14. }

    15. void SysTick_DelayTicks(uint32_t n)
    16. {
    17.     g_systickCounter = n;
    18.     while (g_systickCounter != 0U)
    19.     {
    20.     }
    21. }
    复制代码
    main函数修改为:
    1. int main(void) {

    2.     /* Init board hardware. */
    3.     CLOCK_EnableClock(kCLOCK_Gpio3);
    4.     BOARD_InitBootPins();
    5.     BOARD_InitBootClocks();
    6.     BOARD_InitBootPeripherals();
    7.     LED_RED_INIT(LOGIC_LED_OFF);
    8.     LED_BLUE_INIT(LOGIC_LED_OFF);
    9.     LED_GREEN_INIT(LOGIC_LED_OFF);

    10.     if (SysTick_Config(SystemCoreClock / 1000U))
    11.     {
    12.         while (1)
    复制代码
    pin_mux.c中BOARD_InitBootPins函数中增加,LED灯GPIO的初始化
    1.     /* Enables the clock for PORT3: Enables clock */
    2.     CLOCK_EnableClock(kCLOCK_Port3);
    3.     const port_pin_config_t led_pins_config = {/* Internal pull-up/down resistor is disabled */
    4.                                                      kPORT_PullDisable,
    5.                                                      /* Low internal pull resistor value is selected. */
    6.                                                      kPORT_LowPullResistor,
    7.                                                      /* Fast slew rate is configured */
    8.                                                      kPORT_FastSlewRate,
    9.                                                      /* Passive input filter is disabled */
    10.                                                      kPORT_PassiveFilterDisable,
    11.                                                      /* Open drain output is disabled */
    12.                                                      kPORT_OpenDrainDisable,
    13.                                                      /* Low drive strength is configured */
    14.                                                      kPORT_LowDriveStrength,
    15.                                                      /* Pin is configured as PIO3_4 */
    16.                                                      kPORT_MuxAlt0,
    17.                                                      /* Digital input enabled */
    18.                                                      kPORT_InputBufferEnable,
    19.                                                      /* Digital input is not inverted */
    20.                                                      kPORT_InputNormal,
    21.                                                      /* Pin Control Register fields [15:0] are not locked */
    22.                                                      kPORT_UnlockRegister};
    23.     /* PORT3_4 (pin F14) is configured as PIO3_4 */
    24.     PORT_SetPinConfig(PORT3, 2U, &led_pins_config);
    25.     /* PORT3_4 (pin F14) is configured as PIO3_4 */
    26.     PORT_SetPinConfig(PORT3, 3U, &led_pins_config);
    27.     /* PORT3_4 (pin F14) is configured as PIO3_4 */
    28.     PORT_SetPinConfig(PORT3, 4U, &led_pins_config);
    复制代码
    三、生成Hex文件和下载
    1、进入下载模式
    我没有仿真器和接线,只能用USB接口,研究板件说明书MCX N参考手册,N947的下载方式很多,USB下载当然没问题。
    下载.jpg


    USB设备-资料.jpg
    参考前面大神们的帖子,按着sw3(ISP)按键使用usb micro数据线(不要用了充电线,而且线不能太长)接入电脑,然后松开sw3键可以进入下载模式
    或者接上数据线后,按着sw3(ISP)按键,按一下sw1(reset)复位板子,再松sw3键也可以进入下载模式。
    进入在win10系统下,查看设备管理器可以看到新增一个usb输入设备,事件中可以看到VID和PID与参考手册(上图)描述一致
    USB设备.jpg
    参考:【MCX-N947分享】#2 ISP浅析

    2、生成HEX文件
    MCUXpresso IDE菜单中选择全面构建
    建立.jpg
    如果编译没有出错,你会在左侧项目中的debug或release目录中找到MCXN947_Project.axf文件,点击后使用右键菜单生成hex文件,如下图
    Build Hex.jpg
    生成后,你会在相同目录下找到同名的hex文件

    3、下载
    下载方法我是使用【MCX-N947分享】--3. ISP烧录与流水彩灯中的软件和方式实现。


    另外,我还没研究出如何通过USB接口进行调试,只实现了下载功能,有兄弟知道请告知。

    四、效果
    效果.jpg

    颜色不对,原因是SDK中的一个小BUG
    SDK中board.h文件宏定义,gpio高电平是亮灯,低电平是灭灯
    board.jpg
    电路图中,低电平是亮灯,而高电平灭灯

    开心
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-27 16:39 , Processed in 0.115610 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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