AI浪潮下MCU开发如何受益:以UART DMA不定长接收为例
随着人工智能在编程领域的快速成熟,MCU及嵌入式软件工程师的角色正在悄然演变。
当一个需求来临时,过去通常由领导或研发主管先进行需求分解,我们只负责实现其中的部分;而在AI参与开发后,
你可以将AI视为一个非常聪明但缺乏工程经验的初级工程师,甚至像手下多了几位实习生——你需要一步步引导它完成任务。这个过程并非浪费时间,恰恰相反,当你以这种方式与AI协作时,你的关注点会从“某行代码怎么写”转移到“系统如何拆分、任务如何分阶段推进”,工程师的视角因此发生根本性转变。以下内容来自NXP资深MCU工程师的经验分享,我们结合对AI的认知进一步阐述。
这就像你有一个实习生,他对项目不熟悉。如果你突然提出一个需求,而不提供背景知识、参考资料和之前案例,他自然做不好。因此,你需要分解需求,提供相关背景和参考代码片段。这样,AI或实习生才能更好地完成项目。以一个典型需求为例:我们将需求清晰分解后,交给ChatGPT 5.2,它给出了回复。
UART + DMA实现串口数据不定长接收
很多人初次用AI写MCU代码时,往往会这样做:
问题不在于AI不够聪明,而在于:
你让AI一开始就处理了“最难的一步”。
调试电路时,我们不会直接盯着整张原理图,而是:
使用AI辅助MCU开发,思路类似。
首先,分步很关键,核心在于清晰分解需求。因此,你需要深入了解需求,向需求提出方和领导询问前因后果和场景。这样才能拆解出正确的子需求,让AI实现这些子需求。通过这种方式,你既能减轻工作负担,又能迫使自己加强思考。在下面的示例中,我们严格遵循以下4条原则:
Step 2:在Step1基础上加入RX IdleLine(帧结束判断)
这一步的目标不是DMA,也不是完整的不定长接收,而是先验证IDLE中断是否可靠触发。
🎯 目标 • 继续使用RX中断逐字节接收 • 启用IDLE line中断 • IDLE触发时,得到一帧数据长度
✅ 测试标准 • 串口发送一串字符后停顿(如30ms) • 能看到frame_ready=true,frame_len正确
关键新增逻辑(节选)
最容易踩的3个坑(一定要提前知道) 1. DMA request枚举写错 → 完全收不到数据 2. IDLE flag未清除 → 中断疯狂触发,像“死机” 3. DMA剩余计数单位理解错误 → frame_len不准 👉 最简单验证:PC发10字节,看是否得到10
⸻
总结
这个UART + DMA的例子,本质上并非教通信细节,而是演示:
在MCU这种强硬件约束的领域,AI应如何被正确使用。
当你学会像带实习生一样使用AI,当你开始从系统和步骤层面拆解问题,AI才真正成为你的生产力放大器。
我们是一家专注于Agentic AI的初创公司,致力于构建真正具备解决能力的AI Agent,用于解决真实世界中的复杂工程与业务问题。
不同于传统通用AI工具,我们围绕真实应用场景,打造从问题拆解、任务执行到结果交付的完整Agent化AI解决方案,强调长期可运行、可落地、可持续的工程能力。
目前,我们的产品与解决方案主要聚焦于:
我们相信,Agentic AI将成为下一代AI应用的重要形态,而工程问题的解决能力,始终是AI的核心价值。