这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【FRDM-MCXA366】②从0开始用MCX SDK硬件驱动库点灯(一路各种踩

共1条 1/1 1 跳转至

【FRDM-MCXA366】②从0开始用MCX SDK硬件驱动库点灯(一路各种踩坑)

菜鸟
2026-08-29 23:04:47     打赏


【FRDM-MCXA366】①开箱并点亮液晶


https://forum.eepw.com.cn/thread/401332/1



上一篇中,直接在IDE中下载FRDM-MCXA366官方SDK ,并导入例程直接下载运行成果。


那如果不用官方例程,直接从0开始用MCX  SDK 硬件驱动库点灯,要怎么搞呢。

第一步:

在MCUXpresso IDE中新建一个一个工程,其他选项都默认。


会默认创建一个带串口调试功能的空白工程:

直接编译运行,可以在串口输出:Hello World

/*
 * Copyright 2016-2026 NXP
 * All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

/**
 * @file    MCXA366_LED.c
 * @brief   Application entry point.
 */
#include <stdio.h>
#include "board.h"
#include "peripherals.h"
#include "pin_mux.h"
#include "clock_config.h"
#include "fsl_debug_console.h"

/* TODO: insert other include files here. */

/* TODO: insert other definitions and declarations here. */

/*
 * @brief   Application entry point.
 */
int main(void) {

/* Init board hardware. */
BOARD_InitBootPins();
BOARD_InitBootClocks();
BOARD_InitBootPeripherals();
#ifndef BOARD_INIT_DEBUG_CONSOLE_PERIPHERAL
/* Init FSL debug console. */
BOARD_InitDebugConsole();
#endif

PRINTF("Hello World\r\n");

/* Force the counter to be placed into memory. */
volatile static int i = 0 ;
/* Enter an infinite loop, just incrementing a counter. */
while(1) {
i++ ;
/* 'Dummy' NOP to allow source level single stepping of
            tight while() loop */
__asm volatile ("nop");

}
return 0 ;
}


那我如果配置GPIO口点灯,怎么办,当然是使用IDE的图形化配置工具(类似ST的CubeMX)

然而点击右侧的芯片图标(Pins)进入图形化配置页面。

在左侧工具栏的<Select Project>选择刚创建的工程名,系统进入下载状态并随后提示:不支持处理器或处理器数据不可用。请检查您的网络连接。



问了豆包,并摸索了一番,发现原来是由于目前(2026/8/29)NXP最新版MCUXpresso IDE是2025年6月30发布MCUXpresso IDE v25.6.136。


image.png

而MCXA366

MCXA366(MCX‑A36 系列)
  • 官方正式发布公告:2026‑01‑23,NXP 一次性公布 6 个 MCX‑A 新家族,MCX‑A36 就在其中NXP Semico...。

  • 芯片规格书、用户手册初稿在2026‑02放出;配套开发板 FRDM‑MCXA366 2026 年 Q2 开始提供样品


也就是IDE没赶上MCU的发布时间,而且也没更新,所以解决方案就是下载独立的硬件配置工具:

MCUXpresso Config Tools 26.06

版本历史最后更新:‎06-29-2026 02:25 AM



image.png

将P3_18配置为输出,默认输出为0

再重新生成代码。

就可以在工程文件中的 board/pin_mux.c中看到P3_18的配置已自动生成。

image.png



然后我们更新下程序,加入最核心的

#include "fsl_common.h"


#define SDK_DelayMs(ms)  SDK_DelayAtLeastUs((ms)*1000U, 100000000U)


GPIO_PortToggle(GPIO3, 1u << 18);   翻转P3_18引脚

SDK_DelayMs(500);               //延时500ms


具体使用方法可参考NXP的硬件驱动库。

image.png


#include <stdio.h>
#include "board.h"
#include "peripherals.h"
#include "pin_mux.h"
#include "clock_config.h"
#include "fsl_debug_console.h"
#include "fsl_common.h"

#define SDK_DelayMs(ms)  SDK_DelayAtLeastUs((ms)*1000U, 100000000U)


/* TODO: insert other include files here. */

/* TODO: insert other definitions and declarations here. */

/*
 * @brief   Application entry point.
 */
int main(void) {

/* Init board hardware. */
BOARD_InitBootPins();
BOARD_InitBootClocks();
BOARD_InitBootPeripherals();
#ifndef BOARD_INIT_DEBUG_CONSOLE_PERIPHERAL
/* Init FSL debug console. */
BOARD_InitDebugConsole();
#endif

PRINTF("Hello World\r\n");

/* Force the counter to be placed into memory. */
volatile static int i = 0 ;
/* Enter an infinite loop, just incrementing a counter. */
while(1) {
i++ ;
/* 'Dummy' NOP to allow source level single stepping of
            tight while() loop */
__asm volatile ("nop");

GPIO_PortToggle(GPIO3, 1u << 18);
SDK_DelayMs(500);               //延时500ms


}
return 0 ;
}


编译运行后就可以看到红色LED闪烁了。

不得不说NXP的这套编程工具还是有些缺陷的,IDE跟不上MCU更新速度。

要是设计为只更新MCU驱动包,不更新IDE就完美了,希望NXP后续可以改进得更人性化些。

LED.gif



共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]