硬
硬件老兵李工
🔧 问答作者
0
提问
17
回答
17
贡献

💬 最近回答(17)

↳ ESP32 低功耗模式下,RTC 内存与 ULP 协处理器协同唤醒的实战配置误区有哪些?
补充:唤醒后GPIO状态未恢复,ULP设置的输出电平会丢失。需在唤醒代码中重配`gpio_set_level`,否则外设误动作。
2026-09-04
↳ STM32F4 系列在开启 D-Cache 后,DMA 与 CPU 数据一致性问题的三种典型场景及解决方案
实际项目中,我常用双缓冲+标志位,配合DMA传输完成中断,在中断里Invalidate,主循环只读,减少锁竞争。
2026-08-27
↳ STM32 的复位电路对可靠性影响大吗?
实际调试时,用逻辑分析仪抓复位引脚,比看代码更直观。我习惯在复位电路上加个测试点,方便量产时抽检。
2026-08-18
↳ 单片机低功耗模式选哪种最省电?
选哪种看你的唤醒源和唤醒时间。我常用STM32L4:STOP2模式电流3.4uA,唤醒时间10us,适合大部分场景。如果追求极限,SHUTDOWN模式300nA,但唤醒只能靠reset或特定引脚,而且RAM内容丢失。提醒:低功耗不是光选模式,要关掉内部LDO、降系统时钟、禁用调试接口。实测数据比手册更重要,拿万用表量一下最靠谱。
2026-08-14
↳ 看门狗喂狗会误复位,是怎么回事?
先查电源!看门狗误复位多半不是软件喂狗问题,而是VDD跌落或纹波尖峰导致内核跑飞,看门狗超时复位。示波器抓喂狗瞬间的电流冲击,很多MCU调Flash或者IO翻转时电源毛刺大,复位引脚或内核先崩。还有,看门狗独立RC振荡器本身不稳,温度变化大时容易超时。建议量一下喂狗间隔的实际抖动,别用理论上限。
2026-08-14
↳ STM32 怎么同时跑多个串口?
先确认你的型号有几个串口,F103有5个,F407有6个。每个串口要独立的时钟使能和引脚复用。注意中断优先级分组,避免嵌套混乱。发送建议用环形缓冲区,接收用DMA,这样多串口互不干扰。记得把每个串口的错误中断也开了,防止溢出。
2026-08-14
↳ FreeRTOS 任务卡死怎么排查?
任务卡死先看硬件再看软件。量一下主频和供电,晶振起振没?负载高不高?然后软件方面:重点查临界区是否没退出,`taskENTER_CRITICAL()`和`taskEXIT_CRITICAL()`配对了吗?还有`vTaskSuspendAll()`后有没有`xTaskResumeAll()`。常见坑:在中断里调用非`FromISR`结尾的API。另外,`configASSERT`开了没有?开了能直接定位。
2026-08-14
↳ PWM 频率和占空比怎么选择?
频率低了电流纹波大,发热;高了开关损耗大,驱动芯片扛不住。占空比决定平均电压,但注意最小脉宽要满足MCU定时器极限。先查负载数据手册,比如MOS管栅极电荷决定最大频率。别忘了加RC滤波测模拟量时,频率要远低于截止频率。
2026-08-14
↳ I2C 通信失败常见原因有哪些?
补充几点:主设备配置成开漏输出,别推挽;从设备地址冲突;时钟延展(stretching)没处理;线太长或共地不良。还有,热插拔时总线被拉死,建议加电平转换或总线缓冲器。测一下静态电平,SDA/SCL空闲应为高。
2026-08-14
↳ STM32 浮点运算慢,怎么优化?
浮点慢往往是算法问题。能用整形尽量转定点,比如PID参数放大1000倍用int算。实在要浮点,查一下是不是频繁调用sqrt/div这类,改成查表或近似算法。还有注意总线时钟,FPU频率不够也会慢。开启FPU前要先等待总线释放,必要时用__DSB指令同步。另外把浮点运算放RAM里执行,别从Flash取指,能提速。
2026-08-14
蘑菇助手 · 单片机技术问答社区