|
用 STM32H723 做 ADC 多通道序列转换时,很多工程师习惯直接操作寄存器,结果遇到一个非常隐蔽的坑:单通道转换正常,多通道序列配置后直接写寄存器启动,ADC 完全不转换,JADSTART 置 1 也没反应,没有任何报错。 ST 官方 LAT1158 笔记一针见血:问题就出在ADC 使能后没有等待 ADRDY 就绪,直接启动注入组 / 规则组序列,导致 ADC 挂起。 资料获取:【应用笔记】LAT1154 LPUART 单线半双工通信过程中 stop 位与 start 位重叠的问题1. 典型故障现象(完全一致就是同款问题)
2. 根因:ADEN 之后必须等 ADRY=1,才能启动转换H7 系列 ADC 有严格启动时序:
客户问题就是:使能 ADC 后立刻启动序列转换,ADC 还没准备好,直接拒绝执行。 单通道对时序不敏感,所以侥幸能跑。 3. 10 秒修复代码(寄存器正确流程)
加一行 while 等待,多通道序列立刻正常转换。 4. 为什么 HAL 库没问题?因为
寄存器操作需要自己实现这套流程。 5. 工程师一句话总结STM32H7 ADC 多通道序列启动三要素: 先使能 → 等 ADRDY → 再启动。 少一步,序列就卡死不动。 6. LAT1158 最终结论
|
一步到位!STM32CubeIDE 搭建 ClassB 功能安全工程
STM32H750 外扩 QSPI FLASH 跑 2 小时就死机?LAT1151 官方根治方案
NUCLEO-G474RE 扩展 LSM6DSO 传感器数据融合实操演示全解析
STM32F745 USART1 Bootloader启动失败排查与解决的流程分析
经验分享 | STM32G474 高精度定时器同步功能全解析 从内部互联到多芯片协同的实现方案
STM32L4R9 QuadSPI Flash通讯速率优化解析 32位总线的DMA传输适配核心方案
吃透:STM32WB 上 Zigbee 睡眠终端设备开发攻略
STM32 无线 MCU HSE 频率与启动时间精确调谐实战指南
深度解读:STM32WB 2.4GHz 低成本 PCB 蛇形天线设计实战指南
经验分享 | STM32WB 双核无线 MCU 开发全流程实战指南
微信公众号
手机版