跳过正文

ch32v00x_opa.h

Ch32v00x软件文档 - 这篇文章属于一个选集。
§ 13: 本文

描述
#

该文件包含 OPA(运算放大器)固件库的所有函数原型与数据类型定义,用于配置和控制 CH32V00x 系列微控制器中的内置运算放大器模块。OPA 通过外部扩展控制寄存器(EXTEN_CTR)进行配置,支持正负输入通道选择、使能/禁用控制,并提供结构体初始化辅助函数。该库设计简洁,仅包含必要功能,适用于低功耗模拟信号调理场景。

常量
#

OPA PSEL enumeration
#

正向输入通道选择枚举,用于指定运算放大器的正输入端连接哪个模拟通道。CHP0 和 CHP1 分别对应芯片内部预定义的两个正输入源,通常连接至 GPIO 模拟引脚或内部参考源,具体映射需参考数据手册。选择正确的正通道是构建差分放大或电压跟随器电路的基础。

名称 简述
CHP0 0 选择正输入通道 0
CHP1 1 选择正输入通道 1

OPA NSEL enumeration
#

反向输入通道选择枚举,用于指定运算放大器的负输入端连接哪个模拟通道。CHN0 和 CHN1 对应两个可选的负输入源,常用于构建差分放大器。通过组合 PSEL 和 NSEL,可实现多种放大配置,如单端输入、差分输入或内部反馈模式。

名称 简述
CHN0 0 选择负输入通道 0
CHN1 1 选择负输入通道 1

枚举
#

OPA_PSEL_TypeDef
#

正输入通道选择类型,枚举值为 CHP0CHP1,用于 OPA_InitTypeDef 结构体中配置正输入端。

名称
CHP0 0
CHP1 1

OPA_NSEL_TypeDef
#

负输入通道选择类型,枚举值为 CHN0CHN1,用于 OPA_InitTypeDef 结构体中配置负输入端。

名称
CHN0 0
CHN1 1

结构体
#

OPA_InitTypeDef
#

OPA 初始化配置结构体,用于封装正负输入通道的选择参数,供 OPA_Init()OPA_StructInit() 使用。该结构体仅包含两个字段,设计极简,符合嵌入式系统对资源效率的要求。初始化后,通过写入 EXTEN_CTR 寄存器的位 [18:17] 实现通道映射,其中 PSEL 占用位 [18:17],NSEL 占用位 [17],二者共同决定放大器的输入配置。

名称 类型 简述
PSEL OPA_PSEL_TypeDef 指定运算放大器的正输入通道(CHP0 或 CHP1)
NSEL OPA_NSEL_TypeDef 指定运算放大器的负输入通道(CHN0 或 CHN1)

函数
#

OPA_DeInit
#

void OPA_DeInit(void)
将 OPA 外设寄存器反初始化为默认复位值,即关闭 OPA 并清除所有通道选择配置。该函数通过直接清零 EXTEN_CTR 寄存器的 [18:16] 位实现,不依赖时钟复位,响应迅速,适用于系统初始化或低功耗休眠前的资源释放。

参数:

返回值:

OPA_Init
#

void OPA_Init(OPA_InitTypeDef *OPA_InitStruct)
根据传入的初始化结构体配置 OPA 的正负输入通道。该函数读取当前 EXTEN_CTR 寄存器值,先清除位 [18:17](PSEL 和 NSEL 所在位),再根据结构体成员重新设置,实现原子性配置。注意:PSEL 写入位 [18:17],NSEL 写入位 [17],二者存在位重叠,因此 NSEL 的值必须为 0 或 1,且不能与 PSEL 冲突配置,否则可能导致未定义行为。

参数:

名称 类型 简述
OPA_InitStruct OPA_InitTypeDef * 指向包含 PSEL 和 NSEL 配置的结构体指针

返回值:

OPA_StructInit
#

void OPA_StructInit(OPA_InitTypeDef *OPA_InitStruct)
将 OPA 初始化结构体的所有成员设置为默认复位值:正通道为 CHP0,负通道为 CHN0。此函数用于在调用 OPA_Init() 前确保结构体内容已初始化,避免使用未定义的随机值。推荐在声明结构体变量后立即调用此函数,以提高代码健壮性。

参数:

名称 类型 简述
OPA_InitStruct OPA_InitTypeDef * 指向待初始化的 OPA_InitTypeDef 结构体指针

返回值:

OPA_Cmd
#

void OPA_Cmd(FunctionalState NewState)
启用或禁用 OPA 外设。通过设置 EXTEN_CTR 寄存器的位 [16] 控制 OPA 使能状态。当 NewState 为 ENABLE 时,置位该位;为 DISABLE 时,清零该位。OPA 仅在使能后才消耗功耗并开始放大信号,因此在不使用时应禁用以降低系统功耗。注意:即使通道配置正确,若未调用此函数使能,OPA 仍处于关闭状态,无输出。

参数:

名称 类型 简述
NewState FunctionalState ENABLE(使能)或 DISABLE(禁用),通常来自 ch32v00x.h 中的宏定义

返回值:

注: 所有寄存器操作均基于 EXTEN->EXTEN_CTR,其类型为 uint32_t,所有位操作均使用 (uint32_t) 强制类型转换以确保平台兼容性与位域操作的正确性。

Ch32v00x软件文档 - 这篇文章属于一个选集。
§ 13: 本文

相关文章

ch32v00x.h

该文件是 CH32V003 微控制器的外设访问层头文件,定义了所有外设寄存器的内存映射、位域常量、中断向量、时钟配置、GPIO 控制结构及系统级常量。它为标准外设库提供底层硬件抽象,使开发者可通过结构体指针直接访问寄存器,或通过位掩码配置外设功能。本文件不包含函数原型,仅提供寄存器定义与常量,是所有外设驱动开发的基础。

ch32v00x_adc.h

该文件定义了 CH32V00x 系列微控制器 ADC 外设的固件库所有函数原型、常量、枚举和结构体。ADC(模数转换器)支持单通道与多通道扫描转换、注入通道、模拟看门狗、DMA 请求、软件与外部触发等多种模式,适用于高精度模拟信号采集场景。本库通过寄存器掩码操作实现灵活配置,所有常量均以 uint32_t 或 uint8_t 类型定义,确保与硬件寄存器位域精确匹配。函数设计遵循标准外设库风格,支持初始化、启动、中断、校准、偏移设置等完整功能链,适用于工业控制、传感器接口、电源管理等嵌入式应用。

ch32v00x_dma.h

该文件定义了 CH32V00x 系列微控制器 DMA(直接存储器访问)外设的固件库函数原型、数据结构及常量宏。DMA 用于在不占用 CPU 资源的情况下实现外设与内存、内存与内存之间的高效数据传输,适用于高速数据采集、串口/ADC 缓冲、图像处理等场景。本库支持 7 个 DMA 通道,每个通道可独立配置传输方向、数据宽度、地址递增模式、优先级和循环模式,极大提升系统并发处理能力。