
第一步:抓基础知识——别急着跑,先学会走
GPIO:推挽输出、开漏输出、上拉下拉、电流驱动能力……不只是点灯,还要知道为什么有的引脚不能直接驱动继电器。 中断:外部中断、定时器中断、优先级分组、中断嵌套、临界区保护。写一个按键中断容易,但多个中断同时触发时系统不乱,才叫真懂。 定时器:基本定时、PWM、输入捕获、输出比较。拿来做延时简单,但用来做精确的脉冲计数或电机控制,就需要理解预分频和自动重装载的关系。 ADC:分辨率、采样率、参考电压、连续/单次转换、DMA搬运。测个电位器不难,但要稳定采集工频信号而不混叠,就得懂Nyquist定理。 通信协议:UART、I2C、SPI、CAN。能调通是第一步,能分析波形、处理总线竞争、应对噪声干扰,才算真正掌握。
第二步:狠抓基础——把零散的知识织成网
涉及GPIO(读按键电平) 涉及中断(边沿触发检测按下/释放) 涉及定时器(计时3秒) 涉及状态机(空闲、短按确认、长按等待、长按生效) 可能还涉及低功耗管理(待机时如何唤醒)
第三步:深入理解需求,精准描述问题——这才是AI时代的核心竞争力
NTC型号不同,B值不同,分压电阻不同,计算公式不一样
是否需要滤波?滑动平均还是中值滤波?
报警阈值有没有回差(hysteresis)?防止在边界频繁抖动
UART波特率多少?数据格式是什么?需不需要校验?
MCU主频多少?ADC时钟配置是否会导致采样时间不足?
“STM32F103C8T6,PA0接NTC(MF52-103,B=3950)与10kΩ电阻分压至GND,ADC1_IN0,12位分辨率,连续转换模式,DMA搬运。采用查表法将ADC值转换为温度,精度±1℃。每100ms通过USART1(115200,8N1)发送格式化字符串‘T:xx.xC’。温度超过80℃时,PB12输出高电平驱动蜂鸣器,并加入2℃回差防止抖动。请生成完整的Keil工程代码,包含初始化、主循环和中断处理。”
它可以帮你生成代码模板
它可以帮你检查逻辑遗漏(比如中断优先级设置是否合理)
它可以帮你生成测试用例(比如模拟不同温度下的ADC值)
它甚至可以帮你写单元测试


夜雨聆风