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 -> 等待就绪。

相关推荐
FreakStudio4 天前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
✎ ﹏梦醒͜ღ҉繁华落℘9 天前
单片机基础知识---stm32单片机的优先级
stm32·单片机·mongodb
u152109648499 天前
S.S.Audio PRO A2音频隔离器
嵌入式硬件·音视频·实时音视频·视频编解码·视频
zd8451015009 天前
RS485 总线详解
单片机·嵌入式硬件
半条-咸鱼9 天前
【STM32】I2C协议原理、HAL读写与OLED显示操作
嵌入式硬件·c·信息与通信
牛根生同志9 天前
SPI数据收发的时候 TXE与RXNE标志位置位的时机
stm32·spi·transfer
wohoo_wangzi9 天前
苏州晟雅泰电子:关于W25Q128JVSIQ这个芯片物料的参数,规格及应用领域
嵌入式硬件
goldenrolan10 天前
学习型红外控制系统稳定性挂测工装专项总结
软件测试·python·stm32·嵌入式·红外
✎ ﹏梦醒͜ღ҉繁华落℘10 天前
编程基础 --高内聚,低耦合
c语言·单片机
科芯创展10 天前
1A,1MHz,30VIN,XZ4115,降压恒流LED驱动芯片
单片机·嵌入式硬件