|
用 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 最终结论
|
4-开发生态篇:TouchGFX+STM32Cube 一站式 GUI 落地流程
2-架构革新篇:STM32单芯片嵌入式GUI核心技术原理与性能优势
【福利三:逢7发帖赢大礼】使用MPU6050模块、img_dsc、img_btn机制实现一些简单有趣的动画效果
【福利三:逢7发帖赢大礼】使用arc弧形拉条控件控制PWM舵机及使用SPI3接口操作NRF24L01模块进行无线通信
1-趋势痛点篇:嵌入式 GUI 爆发,传统外挂存储架构的多重工程瓶颈
【福利三:逢7发帖赢大礼】调试nucleo-WBA65RI工程测试样板的一些心得
【福利三:逢7发帖赢大礼】lv_timer和BME680实现温度、湿度、气压数据读取
【福利三:逢7发帖赢大礼】成功利用STM32H743VI片内SRAM12和DTCM空间(完全胜利)
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
【福利三:逢7发帖赢大礼】使用惠勤致远STM32H743VI开发板+ST7796并口彩屏移植LVGL9.5并分享一些额外内容
微信公众号
手机版