ADC通道切换在GD32和PY32(STM32)区别

GD32 与 PY32/STM32 (LL库) 在 ADC 架构和寄存器操作上的核心差异。

核心差异总结

1. GD32 (基于标准库/寄存器直接操作):

机制: 使用 RSQ (Regular Sequence) 寄存器。

操作: adc_regular_channel_config(rank, channel, ...) 实际上是修改序列中第 rank 个位置对应的通道号。

特性: 这是一个"写通道号"的操作。在大多数 GD32 型号中,只要不改变序列长度或触发源,动态修改 RSQ 中的通道值通常不需要关闭 ADC,因为硬件是在转换开始那一刻读取 RSQ 的当前值。

2. PY32 / STM32 (基于 LL 库):

机制: 使用 CHSELR (Channel Selection Register)。

操作: LL_ADC_REG_SetSequencerChannels() 是写入一个位图 (Bitmap)。例如,选通道 3 就是置位 bit 3。

特性: 这是一个"配置有效通道集合"的操作。根据 ARM Cortex-M0/M0+内核的 ADC 设计规范(以及 PY32/STM32 参考手册),当 ADEN (ADC Enable) 为 1 时,CHSELR 寄存器是只读的 (Write protected)。

后果: 如果在 ADC 使能状态下强行写入 CHSELR,写入会被忽略,或者导致总线错误(取决于具体系列),通道不会切换。因此,必须先 Disable -> 等待完全关闭 -> 修改寄存器 -> 重新 Enable -> 等待就绪。

相关推荐
咖丨喱5 分钟前
【中断与收包】
单片机·嵌入式硬件
youshi666837 分钟前
平衡车——PID算法优化
stm32·单片机·嵌入式硬件·算法·pid·平衡车
comyccccc1 小时前
高效降压电路布局与铺铜优化技巧学习笔记
单片机·嵌入式硬件
白搞电子1 小时前
ESP32-S31 WASM 应用开发实录:重力弹球从电脑预览到 ESP-Mosaico 实机测试
单片机·嵌入式硬件·物联网·电脑·wasm
尼喃1 小时前
集成输入反接保护的USB限流保护芯片IC反向电流阻断验证
嵌入式硬件
ye150127774551 小时前
220V降压24V700mA交转直芯片WT5110
stm32·单片机·嵌入式硬件·其他·硬件工程
BSD_HY2 小时前
薄膜开关矩阵扫描在低功耗 MCU 上的 GPIO 扩展
单片机·嵌入式硬件·矩阵
时代的凡人3 小时前
生活中的恒流源和恒压源
嵌入式硬件
恒锐丰科技林技术员4 小时前
EG2181 半桥驱动芯片原理与应用解析
经验分享·嵌入式硬件·硬件工程
Jason_zhao_MR4 小时前
电力数据采集核心板选型指南
linux·嵌入式硬件·fpga开发·嵌入式