MCXA346 开发板 UART 串口输出
项目介绍
大家好,我是一名嵌入式爱好者,本次参加了硬禾学堂提供的FunPack5-1活动。但是由于个人原因,选择实现任务一:使用MCXA346开发板的UART串口输出“Hello, DigiKey Funpack 5-1”,任务较为简单,因此本次任务的目标为:
- 掌握 NXP MCXA346 开发板 UART 串口的基本配置与使用方法。
- 实现通过 UART 串口向串口调试助手(SSCOM)发送指定字符串:Hello, DigiKey Funpack 5-1。
- 熟悉 MCUXpresso IDE 开发环境的工程编译、下载与调试流程。
板卡介绍
FRDM-MCXA346 是 NXP 推出的紧凑可扩展开发板,基于 MCXA346 微控制器打造,为电机控制等嵌入式应用提供快速原型设计能力,也是 DigiKey Funpack 第五季活动指定板卡,板卡集成丰富外设与调试资源,适配 MCUXpresso 开发环境,大幅降低开发门槛。

FRDM-MCXA346 开发板
- 主控芯片:搭载 Arm® Cortex®-M33 内核,主频最高 180MHz,配备最高 1MB 闪存、256KB RAM(含 8KB ECC 纠错),集成 MAU 数学加速单元、SmartDMA 协处理器,专为电机控制优化;
- 通信与接口:板载 HS USB Type-C 接口、4 路 LPUART、1 路 CAN-FD,预留 Arduino、FRDM、mikroBUS 等扩展接口,还有摄像头、Wi-Fi 连接器(DNP),支持多协议串行通信;
- 调试与硬件:集成 MCU-Link 调试器(带 CMSIS-DAP),提供 JTAG/SWD 调试接口,板载电源、复位、状态 LED 灯,配备专用复位按键,支持一键程序烧录与复位;
- 外设资源:含 2 路 16 位 ADC、3 路运放、2 路 FlexPWM(电机控制核心)、2 路 eQDC 正交解码器,还支持 LPSPI、LPI2C 等低功耗外设,满足工业控制、消费电子多场景需求;
- 开发支持:全面兼容 MCUXpresso IDE/SDK,提供完善的软件示例与应用代码中心,可在线查看板卡原理图、PCB 文件,配套用户手册与快速上手教程。
板卡框图
项目原理
UART(通用异步收发传输器)是嵌入式开发中最常用的串行通信接口,无需时钟信号即可实现设备间数据传输。
本次项目通过开发板板载的调试 UART 接口,调用 SDK 封装的串口打印函数,将字符串数据通过 USB 虚拟串口发送至上位机串口调试助手显示。因此在本任务中仅仅需要简单的配置一下UART输入输出接口便能完成任务,本次任务调用的LPUART2,其配置如下:

UART配置

可以看见,MCUXpresso IDE是一款非常强大的IDE,他可能很方便的为我们显示出可以使用的引脚,极大简化了我们在配置接口的过程中需要去修改底层寄存器这一繁琐问题。因此在这里我们将接口36作为接收RX,接口35作为发送TX。配置完成后,其对应的模块以及引脚接口如下图所示:

芯片封装与引脚
本次任务的代码如下:
#include "fsl_device_registers.h"
#include "fsl_debug_console.h"
#include "board.h"
#include "app.h"
int main(void)
{
char ch;
/* Init board hardware. */
BOARD_InitHardware();
PRINTF("Hello, DigiKey Funpack 5-1.\r\n");
while (1)
{
ch = GETCHAR();
PUTCHAR(ch);
}
}
可以看见代码很简单,只有一个简单的硬件初始化,一个输出以及一个等待循环。硬件初始化函数 BOARD_InitHardware () 会自动完成开发板系统时钟、UART 串口引脚、波特率等所有底层配置,不需要我们手动操作复杂的寄存器,大大降低了嵌入式入门的难度。
PRINTF 函数则是基于 UART 串口实现的打印功能,直接将我们需要的字符串通过串口发送到电脑端的串口调试助手显示。
最后的 while (1) 循环让程序保持运行状态,其中包含的 GETCHAR 和 PUTCHAR 函数实现了串口数据的接收与回显,让开发板能够实时响应电脑发送的指令。
整体代码结构清晰、逻辑简单,非常适合嵌入式初学者理解 UART 串口的基本工作方式,也是 MCXA346 开发板最基础、最经典的入门实验。
最终,任务输出的结果如下:
可以看见,当程序开始运行的时候,串口上会输出“Hello, DigiKey Funpack 5-1”,之后就进入了等待,当按下复位按钮后,程序重新运行,再次输出“Hello, DigiKey Funpack 5-1”。或者不按复位按钮,通过上位机给板卡发送一个信息后,板卡会通过uart将该信息返回回来。
任务总结
- 本次任务成功完成了 MCXA346 开发板 UART 串口的基础应用,实现了指定字符串的串口输出功能。
- 理解了嵌入式系统中 UART 串口的工作逻辑,掌握了 SDK 库函数的调用方法。
- 解决了串口通信常见问题:串口参数匹配、端口占用、硬件复位等关键操作。
- 本次任务中使用了新的板卡 NXP MCXA346 开发板以及新的工具链MCUXpresso IDE,重新掌握了工具配置->导入SDK->导入工程->编译工程->调试工程->运行工程嵌入式开发的全流程。
心得体会
本次参加FunPack5-1,虽然选择了最简单的任务,但是仍然学到了不少知识。在搭建开发环境的过程中也遇到了许多问题,比如NXP官方网站网络问题,最大的便是在安装SDK的时候,最开始通过官网下载,因为网络问题导致一直下载失败。后面根据群友的帮助以及官方的视频我知道了可以在IDE里面直接安装SDK,这才让我成功搭建了环境。这件事情让我明白了无论开发什么样的板卡,使用什么样的工具链,在开发之前都需要有充足的准备而不是直接选择一种方式死磕到底,要懂得变通。最后,虽然本次任务仅仅实现了使用串口收发,但也让我有机会接触到了新的板卡“NXP MCXA346”以及新的工具链MCUXpresso IDE ,让我不再沉浸在依赖STM32CubeIDE 以及Keil这两个工具中。通过本次活动,让我更有信心面对未来更加复杂,更新颖,更创新型的任务以及活动,感谢硬核学堂以及得捷购的支持!