一、项目背景与目标
在嵌入式系统开发中,串口通信是设备间数据交互的基础方式之一。本次的实践活动是基于恩智浦(NXP)的FRDM-MCXA346开发板,通过Visual Studio Code(VSCode)的MCUXpresso for VS Code插件,实现一个简单的串口通信功能。具体目标是通过LPUART2接口发送固定字符串“"Hello, DigiKey Funpack 5-1\r\n"”,并利用调试器的虚拟串口转发数据,PC上的调试助手验证通信功能的正确性。
二、硬件与软件环境准备
硬件平台
FRDM-MCXA346开发板:FRDM-MCXA346是恩智浦推出的基于MCX A系列MCU的评估板搭载ARM Cortex-M33内核,主频高达180MHz,集成1MB Flash和256KB RAM,支持LPUART、SPI、I2C等多种外设接口。开发板内置MCU-Link调试器,支持CMSIS-DAP协议,可通过USB实现程序下载和调试。本次实践使用LPUART2(低功耗通用异步收发器)作为通信接口,该接口支持3.3V电平标准,兼容TTL电平,可直接连接PC的虚拟串口工具,当然开发板内部连接的是调试器。
软件环境
Visual Studio Code(VSCode):VSCode是一款轻量级、跨平台的代码编辑器,支持通过插件扩展嵌入式开发功能。
MCUXpresso for VS Code插件:该插件由恩智浦官方提供,集成了SDK导入、项目创建、编译调试等功能,支持MCX、LPC、Kinetis等系列MCU的开发。
SDK与工具链:需从恩智浦官网下载对应开发板的SDK包(如MCX_A34x_SDK),并安装GCC ARM Embedded工具链。
三、开发流程
安装与配置VSCode及插件
从VSCode官网下载并安装最新版本,打开VSCode,进入“扩展”市场(快捷键Ctrl+Shift+X),搜索NXP MCUXpresso,点击安装。运行MCUXpresso Installer(通过插件启动),选择安装GCC ARM Embedded工具链及调试驱动(如SEGGER J-Link或MCU-Link)。
导入SDK并创建项目
访问恩智浦SDK下载页面,选择FRDM-MCXA346开发板对应的SDK包,下载后解压至本地目录。在VSCode中导入SDK,打开VSCode,点击左侧活动栏的“MCUXpresso”图标。选择Import SDK,定位到解压后的SDK目录,插件会自动解析SDK结构,生成可用的示例工程列表。在示例列表中选择hello_world工程:
修改代码实现固定字符串发送
打开主文件:
可以找到串口初始化函数,包含来了引脚、时钟、外设等内容的初始化:
void BOARD_InitHardware(void)
{
BOARD_InitDEBUG_UARTPins();
BOARD_InitBootClocks();
BOARD_InitDebugConsole();
}
修改发送逻辑:在main()函数中,替换原有的PRINTF内容,到这里基本上我们已经完成了基本任务的一般了。示例代码如下:
PRINTF("Hello, DigiKey Funpack 5-1\r\n");
编译与烧录程序
在VSCode的NXP插件中点击的“Build”按钮,插件会自动调用GCC工具链生成可执行文件(.elf或.axf):
使用USB线将开发板的调试接口连接至PC,系统会自动识别为MCU-Link设备。点击VSCode的“Debug”按钮(“Build”按钮旁边),选择MCU-Link作为调试器,插件会下载程序至开发板并启动调试会话:
这个时候我们使用串口调试助手连接到MCU-Link调试器虚拟出的COM端口,就可以看到发送的对应字符串了,注意配置波特率为115200、8位数据位、无校验位、1位停止位:
四、关键问题
我们本次体验主要是VSCode的使用问题,我们在进行MCUXpresso for VS Code插件的安装和调试过程中需要是要中间的安装工具将部分依赖项进行安装,默认是C盘,这一点还是不太好的,依赖项也比较多。
五、总结
本次实践通过恩智浦FRDM-MCXA346开发板与Visual Studio Code(VSCode)的MCUXpresso插件组合,完成了串口通信功能的开发。作为首次使用该开发板及VSCode嵌入式开发环境的体验,整体开发流程还是很高效,感觉对传统嵌入式开发与工具的冲击不小,不过也可以看出厂商对这中开发模式也是很欢迎的。