CSDN专栏嵌入式程序开发实战嵌入式双范式AI编程嵌入式开发必掌握嵌入式求职面试技术资料第10讲嵌入式AI开发人机分工——人定硬件逻辑AI做代码实现一、为什么需要明确人机分工嵌入式AI开发中最危险的误区是完全交给AI。明确人机分工是确保AI辅助正确、代码质量可控的前提。1.1 完全交给AI的后果后果一硬件逻辑错误AI生成的代码不理解硬件特性时序、电气特性不理解硬件约束资源限制、环境条件不理解硬件风险干扰、失效模式示例AI生成的I2C代码没有考虑总线恢复时间AI生成的中断代码没有考虑中断嵌套AI生成的电源代码没有考虑上电顺序后果二架构混乱AI生成的代码没有整体架构设计各模块耦合混乱代码风格不一致难以维护和扩展示例AI生成的多个驱动相互依赖AI生成的代码命名混乱AI生成的代码注释缺失后果三安全隐患AI生成的代码没有容错处理没有异常处理没有安全检查示例AI生成的电机控制代码没有过流保护AI生成的通信代码没有超时处理AI生成的传感器代码没有断线检测1.2 正确的人机关系人是主导人负责硬件逻辑设计时序、电气、环境架构设计模块划分、接口定义安全设计容错、异常、保护质量把控审查、测试、验证AI是辅助AI负责代码实现根据人的设计代码生成重复性工作代码优化性能优化文档生成辅助文档核心原则人定方向AI做执行人定约束AI做实现人定质量AI做效率二、人负责的核心工作2.1 硬件逻辑设计硬件逻辑包括时序逻辑人需要确定I2C时序Start建立时间、Stop建立时间、数据保持时间SPI时序时钟极性、时钟相位、片选建立/保持时间UART时序波特率、数据位、停止位、校验位ADC时序采样时间、转换时间PWM时序周期、占空比、死区时间示例人确定I2C速率100kHzStart建立时间≥4.7usAI实现根据人的约束生成I2C初始化代码电气逻辑人需要确定电压范围工作电压、容差范围电流限制最大电流、过流保护阈值功耗要求工作功耗、休眠功耗驱动能力引脚驱动能力、负载匹配示例人确定GPIO输出电流最大8mA负载需要10mA需要增加驱动电路AI实现根据人的约束生成GPIO配置代码环境逻辑人需要确定温度范围工作温度、存储温度湿度范围工作湿度、防护等级振动要求振动频率、振动幅度EMC要求抗干扰等级、辐射限制示例人确定设备工作温度-40°C ~ 85°C需要工业级芯片AI实现根据人的约束选择合适的芯片型号2.2 架构设计架构设计包括模块划分人需要确定功能模块传感器模块、通信模块、控制模块、显示模块驱动模块GPIO驱动、UART驱动、SPI驱动、I2C驱动中间层协议层、应用层、接口层示例人确定系统分为传感器采集、数据处理、通信发送三个模块AI实现根据人的架构生成各模块代码框架接口定义人需要确定模块间接口函数接口、数据接口、事件接口驱动接口初始化接口、操作接口、状态接口硬件接口引脚定义、信号定义、时序定义示例人确定传感器模块接口Init()、Read()、Process()AI实现根据人的接口定义生成函数框架数据流设计人需要确定数据流向传感器 → 处理 → 通信 → 显示数据格式原始数据、处理数据、协议数据数据存储RAM、Flash、外部存储示例人确定传感器数据经过滤波、校准后发送AI实现根据人的数据流生成处理代码2.3 安全设计安全设计包括容错设计人需要确定通信容错超时重传、CRC校验、帧序号传感器容错断线检测、量程检查、滤波去抖执行器容错过流保护、过热保护、堵转检测系统容错看门狗、异常复位、状态恢复示例人确定I2C通信失败重试3次仍失败则报告故障AI实现根据人的容错设计生成重试代码异常处理人需要确定硬件异常断线、短路、过流、过热通信异常超时、错误、丢失数据异常越界、错误、丢失系统异常死锁、溢出、崩溃示例人确定传感器断线时输出安全值记录故障日志AI实现根据人的异常处理生成故障处理代码保护措施人需要确定硬件保护过流保护、过压保护、过热保护软件保护看门狗、堆栈检测、内存保护数据保护备份、校验、加密系统保护安全状态、故障导向安全示例人确定电机过流时立即停止进入安全状态AI实现根据人的保护措施生成保护代码2.4 质量把控质量把控包括代码审查人需要审查逻辑正确性代码是否实现设计意图规范符合性代码是否符合编码规范安全正确性容错、异常、保护是否完整性能合理性时序、资源、功耗是否满足示例人审查AI生成的I2C代码是否有总线恢复时间AI无法替代人的审查判断测试验证人需要验证功能测试功能是否正确实现边界测试边界条件是否处理异常测试异常情况是否处理性能测试性能指标是否满足示例人验证I2C通信在快速连续读取时是否正常AI无法替代人的测试判断问题修复人需要分析问题定位问题发生在哪里问题原因问题为什么发生修复方案如何修复问题验证修复修复是否有效示例人分析I2C通信失败是因为时序违规修复方案是增加延时AI实现根据人的修复方案修改代码三、AI负责的核心工作3.1 代码实现AI擅长的代码实现驱动代码生成人提供硬件参数引脚、时钟、时序功能需求初始化、读写、配置AI生成寄存器配置代码初始化函数操作函数示例人PA9/PA10配置为USART1波特率115200AI生成USART1初始化代码协议代码生成人提供协议格式帧结构、字段定义处理逻辑解析、打包、校验AI生成协议解析代码协议打包代码校验计算代码示例人Modbus RTU帧格式CRC-16校验AI生成Modbus帧解析和打包代码算法代码生成人提供算法原理公式、逻辑实现要求精度、性能AI生成算法实现代码优化代码示例人PID控制算法Kp1.0, Ki0.1, Kd0.01AI生成PID控制代码3.2 代码生成AI擅长的代码生成配置代码生成人提供配置参数时钟、GPIO、外设AI生成配置结构体配置函数示例人系统时钟72MHzHSE 8MHzAI生成时钟配置代码模板代码生成人提供模板结构函数框架、注释格式AI生成完整函数代码注释文档示例人函数模板函数名、参数、返回值、功能描述AI生成完整函数代码和注释重复代码生成人提供重复模式相似功能的代码模式AI生成批量生成相似代码示例人8路ADC采集每路配置相同AI生成8路ADC采集代码3.3 代码优化AI擅长的代码优化性能优化人提供性能瓶颈耗时函数、频繁调用AI优化算法优化代码重构示例人滤波函数耗时过长AI优化滤波算法使用查表法资源优化人提供资源限制RAM、Flash、堆栈AI优化内存优化代码压缩示例人RAM不足需要优化内存使用AI使用静态数组替代动态分配减少局部变量代码简化人提供冗余代码重复逻辑、冗余判断AI简化代码合并逻辑简化示例人多处重复的错误处理代码AI提取公共函数简化代码3.4 文档生成AI擅长的文档生成代码注释生成人提供代码功能描述AI生成函数注释块参数说明返回值说明示例人函数功能是读取传感器数据AI生成完整的函数注释设计文档生成人提供设计思路、架构描述AI生成设计文档架构图描述示例人系统分为三个模块数据流向是…AI生成设计文档测试文档生成人提供测试用例、测试结果AI生成测试报告测试文档示例人测试用例和结果AI生成测试报告四、人机协作工作流4.1 标准工作流步骤一人进行需求分析人分析功能需求分析性能需求分析安全需求分析约束条件输出需求文档自然语言步骤二人进行设计人设计硬件逻辑时序、电气、环境设计系统架构模块、接口、数据流设计安全机制容错、异常、保护输出设计文档Spec步骤三AI生成代码AI根据人的设计生成代码框架根据人的约束生成驱动代码根据人的接口生成函数代码输入人的设计文档Spec输出代码框架、驱动代码、函数代码步骤四人审查代码人审查逻辑正确性审查规范符合性审查安全正确性修改不符合要求的代码输入AI生成的代码输出审查通过的代码步骤五人测试验证人执行功能测试执行边界测试执行异常测试执行性能测试输入审查通过的代码输出测试报告步骤六人修复问题人分析问题原因制定修复方案AI根据人的方案修改代码输入测试报告输出修复后的代码步骤七迭代直到通过重复步骤四-六直到所有测试通过4.2 典型案例温度控制系统步骤一人进行需求分析人分析功能需求读取温度传感器PT100根据温度控制加热器显示当前温度和设定温度通过串口上报温度数据性能需求温度采集周期1秒控制响应时间100ms显示刷新周期500ms安全需求温度超限报警100°C加热器过流保护传感器断线检测约束条件MCUSTM32F103温度范围-50°C ~ 150°C加热器功率500W步骤二人进行设计人设计硬件逻辑PT100使用SPI接口采样周期1秒加热器使用PWM控制频率1kHz显示使用I2C接口刷新周期500ms串口波特率115200系统架构传感器模块PT100_Init()、PT100_Read()控制模块Control_Init()、Control_Process()显示模块Display_Init()、Display_Update()通信模块Comm_Init()、Comm_Send()安全机制温度超限停止加热报警过流保护检测电流超限停止断线检测检测PT100连接状态步骤三AI生成代码Prompt根据以下设计生成代码 - STM32F103使用HAL库 - PT100通过SPI1读取采样周期1秒 - 加热器通过TIM3 PWM控制频率1kHz - 显示通过I2C1刷新周期500ms - 串口USART1波特率115200 - 温度超限100°C时停止加热并报警 - 检测PT100断线断线时报告故障AI生成PT100驱动代码PWM控制代码显示驱动代码串口通信代码主控制逻辑代码步骤四人审查代码人审查PT100驱动时序是否正确断线检测是否实现PWM控制频率是否正确过流保护是否实现显示驱动I2C时序是否正确串口通信波特率是否正确超时处理是否实现主控制逻辑温度超限处理是否正确发现问题PT100驱动缺少断线检测代码PWM控制缺少过流保护代码人修改添加PT100断线检测代码添加PWM过流保护代码步骤五人测试验证人测试功能测试温度读取、加热控制、显示、通信边界测试温度-50°C、150°C、超限100°C异常测试PT100断线、加热器过流、串口断开性能测试采集周期、控制响应、显示刷新发现问题温度采集周期不稳定有时800ms有时1200ms人分析原因主循环中多个任务串行执行耗时不确定修复使用定时器中断控制采集周期步骤六人修复问题人制定修复方案使用TIM2定时器中断周期1秒中断中设置标志主循环检测标志执行采集Prompt“修改代码使用TIM2定时器中断控制温度采集周期周期精确1秒”AI修改添加TIM2定时器配置修改主循环逻辑使用中断标志步骤七迭代直到通过重复审查、测试、修复直到所有测试通过五、人机分工边界清单5.1 人必须做的需求分析功能、性能、安全、约束硬件逻辑设计时序、电气、环境系统架构设计模块、接口、数据流安全机制设计容错、异常、保护代码审查逻辑、规范、安全测试验证功能、边界、异常、性能问题分析定位、原因、方案质量把控最终决策5.2 AI可以做的代码实现根据人的设计代码生成驱动、协议、算法代码优化性能、资源、简化文档生成注释、设计文档、测试文档代码修改根据人的方案5.3 AI不能做的需求分析不理解业务硬件逻辑设计不理解硬件架构设计没有全局观安全设计不理解风险质量决策不能承担责任替代人的判断六、本讲核心要点6.1 记住这三句话完全交给AI是危险的AI不理解硬件、架构、安全必须由人主导人负责设计、审查、测试、决策AI负责实现、生成、优化、辅助人机协作的正确姿势人定方向和约束AI做执行和实现人审查和验证6.2 实践建议对于新手学习硬件知识理解时序、电气、环境学习架构设计理解模块、接口、数据流学习安全设计理解容错、异常、保护对AI生成的代码进行审查不要盲目信任对于有经验工程师建立人机协作工作流编写Spec约束AI生成严格审查AI生成的代码建立代码审查清单对于团队负责人明确人机分工边界培训团队硬件知识和安全意识建立代码审查流程建立质量把控机制6.3 下讲预告第11讲将对比分析嵌入式传统开发 VS AI双范式开发效率与稳定性对比传统开发和AI双范式开发有什么区别效率如何稳定性如何下一讲将通过对比分析展示AI双范式开发的优势和适用场景。