跳过正文

ch32v00x.h

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

描述
#

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

常量
#

HSE_VALUE, HSI_VALUE, HSE_STARTUP_TIMEOUT
#

外部高速晶振(HSE)与内部高速振荡器(HSI)的标称频率及启动超时值
HSE 默认为 24MHz,HSI 同样为 24MHz,适用于无外部晶振的简化系统。HSE 启动超时设置为 8192 个时钟周期,确保在低速或负载条件下仍有足够时间稳定。这些值可被用户在编译时通过宏覆盖,以适配不同硬件配置。

名称 简述
HSE_VALUE 24000000 外部高速振荡器频率(Hz)
HSI_VALUE 24000000 内部高速振荡器频率(Hz)
HSE_STARTUP_TIMEOUT 0x2000 HSE 启动超时计数(约 8192 个周期)

以上所有值均为 uint32_t 类型,用于时钟配置与初始化延时计算。

__CH32V00x_STDPERIPH_VERSION
#

标准外设库版本号,由主版本与子版本组成,用于版本兼容性检查
主版本为 0x02(2),子版本为 0x01(1),组合为 0x0201。此版本号可用于条件编译,确保代码与库版本匹配,避免因 API 变更导致的运行时错误。

名称 简述
__CH32V00x_STDPERIPH_VERSION_MAIN 0x02 主版本号
__CH32V00x_STDPERIPH_VERSION_SUB 0x01 子版本号
__CH32V00x_STDPERIPH_VERSION 0x0201 组合版本号(主«8

IRQn_Type 中断向量编号
#

RISC-V 架构与 CH32V003 特有外设的中断请求编号,用于配置 NVIC 与中断服务函数
编号遵循 RISC-V 标准异常(214)与芯片特定外设中断(1638),每个编号对应一个唯一的中断服务函数入口。系统定时器(SysTick)和软件中断(Software)为通用内核中断,其余为外设专属,如 ADC、I2C、USART 等。

名称 简述
NonMaskableInt_IRQn 2 不可屏蔽中断
EXC_IRQn 3 异常中断(HardFault)
SysTick_IRQn 12 系统节拍定时器中断
Software_IRQn 14 软件触发中断
WWDG_IRQn 16 窗口看门狗中断
PVD_IRQn 17 电源电压检测中断
FLASH_IRQn 18 闪存操作完成中断
RCC_IRQn 19 时钟控制中断
EXTI7_0_IRQn 20 外部中断线 0~7 组合中断
AWU_IRQn 21 自动唤醒单元中断
DMA1_Channel1_IRQn 22 DMA 通道 1 中断
DMA1_Channel2_IRQn 23 DMA 通道 2 中断
DMA1_Channel3_IRQn 24 DMA 通道 3 中断
DMA1_Channel4_IRQn 25 DMA 通道 4 中断
DMA1_Channel5_IRQn 26 DMA 通道 5 中断
DMA1_Channel6_IRQn 27 DMA 通道 6 中断
DMA1_Channel7_IRQn 28 DMA 通道 7 中断
ADC_IRQn 29 ADC 转换完成中断
I2C1_EV_IRQn 30 I2C1 事件中断(传输完成、地址匹配等)
I2C1_ER_IRQn 31 I2C1 错误中断(超时、仲裁丢失等)
USART1_IRQn 32 USART1 接收/发送中断
SPI1_IRQn 33 SPI1 传输完成中断
TIM1_BRK_IRQn 34 TIM1 刹车中断
TIM1_UP_IRQn 35 TIM1 更新中断(计数器溢出)
TIM1_TRG_COM_IRQn 36 TIM1 触发与互补输出中断
TIM1_CC_IRQn 37 TIM1 捕获/比较中断
TIM2_IRQn 38 TIM2 通用定时器中断

注:HardFault_IRQnSysTicK_IRQn 为别名定义,前者指向 EXC_IRQn,后者拼写错误(应为 SysTick_IRQn),使用时需注意。

PERIPH_BASE, APB1PERIPH_BASE, APB2PERIPH_BASE, AHBPERIPH_BASE
#

外设基地址映射,用于构建外设寄存器指针
CH32V003 采用统一编址,AHB、APB1、APB2 总线外设分别映射到不同地址段。APB1 与 APB2 均从 0x40000000 开始,但 APB2 偏移 0x10000,AHB 偏移 0x20000。此设计允许通过基地址加偏移快速定位寄存器。

名称 简述
PERIPH_BASE 0x40000000 外设总线基地址
APB1PERIPH_BASE 0x40000000 APB1 外设基地址(低速外设)
APB2PERIPH_BASE 0x40010000 APB2 外设基地址(高速外设)
AHBPERIPH_BASE 0x40020000 AHB 外设基地址(DMA、RCC、FLASH)

FLASH_BASE, SRAM_BASE
#

存储器空间基地址,用于内存访问与链接脚本配置
Flash 从 0x08000000 开始,SRAM 从 0x20000000 开始,符合 ARM Cortex-M/RISC-V 标准内存布局。Flash 为可编程非易失存储,SRAM 为运行时数据区。

名称 简述
FLASH_BASE 0x08000000 Flash 存储器基地址
SRAM_BASE 0x20000000 SRAM 基地址

TIM2_BASE, WWDG_BASE, I2C1_BASE, PWR_BASE, AFIO_BASE, EXTI_BASE, GPIOx_BASE, ADC1_BASE, TIM1_BASE, SPI1_BASE, USART1_BASE, DMA1_BASE, RCC_BASE, FLASH_R_BASE, OB_BASE, EXTEN_BASE
#

各外设寄存器组的具体物理地址,用于实例化外设指针
这些地址是 PERIPH_BASE 加上偏移量的计算结果,直接用于如 GPIOA = (GPIO_TypeDef *)GPIOA_BASE; 的指针赋值。地址分配遵循外设总线拓扑,高速外设(如 TIM1、SPI1)位于 APB2,低速外设(如 TIM2、I2C1)位于 APB1。

名称 简述
TIM2_BASE 0x40000000 TIM2 定时器寄存器地址
WWDG_BASE 0x40002C00 窗口看门狗寄存器地址
IWDG_BASE 0x40003000 独立看门狗寄存器地址
I2C1_BASE 0x40005400 I2C1 通信接口地址
PWR_BASE 0x40007000 电源控制寄存器地址
AFIO_BASE 0x40010000 复用功能IO寄存器地址
EXTI_BASE 0x40010400 外部中断控制器地址
GPIOA_BASE 0x40010800 GPIOA 端口寄存器地址
GPIOC_BASE 0x40011000 GPIOC 端口寄存器地址
GPIOD_BASE 0x40011400 GPIOD 端口寄存器地址
ADC1_BASE 0x40012400 ADC1 模数转换器地址
TIM1_BASE 0x40012C00 TIM1 高级定时器地址
SPI1_BASE 0x40013000 SPI1 串行外设接口地址
USART1_BASE 0x40013800 USART1 通用异步收发器地址
DMA1_BASE 0x40020000 DMA1 控制器基地址
DMA1_Channel1_BASE 0x40020008 DMA1 通道1寄存器地址
DMA1_Channel2_BASE 0x4002001C DMA1 通道2寄存器地址
DMA1_Channel3_BASE 0x40020030 DMA1 通道3寄存器地址
DMA1_Channel4_BASE 0x40020044 DMA1 通道4寄存器地址
DMA1_Channel5_BASE 0x40020058 DMA1 通道5寄存器地址
DMA1_Channel6_BASE 0x4002006C DMA1 通道6寄存器地址
DMA1_Channel7_BASE 0x40020080 DMA1 通道7寄存器地址
RCC_BASE 0x40021000 时钟控制模块地址
FLASH_R_BASE 0x40022000 Flash 控制寄存器地址
OB_BASE 0x1FFFF800 选项字节存储地址(非标准外设地址)
EXTEN_BASE 0x40023800 增强功能寄存器地址

VENDOR_CFG0_BASE, CFG0_PLL_TRIM
#

厂商配置寄存器地址,用于校准 PLL 与芯片特性
CFG0_PLL_TRIM 为 PLL 频率校准寄存器,位于 0x1FFFF7D4,出厂时已预设,用户可读取但不建议修改,否则可能导致系统时钟不稳定。

名称 简述
VENDOR_CFG0_BASE 0x1FFFF7D4 厂商配置寄存器基地址
CFG0_PLL_TRIM 0x1FFFF7D4 PLL 时钟校准值地址

FLASH_MODEKEYR_KEY1, FLASH_MODEKEYR_KEY2, FLASH_BOOT_MODEKEYR_KEY1, FLASH_BOOT_MODEKEYR_KEY2
#

Flash 模式解锁密钥,用于解锁 Flash 编程/擦除操作
Flash 操作前必须按顺序写入 0x456701230xCDEF89AB 两个密钥,否则写入将被拒绝。此机制防止意外写入,增强系统安全性。

名称 简述
FLASH_MODEKEYR_KEY1 0x45670123 Flash 模式解锁密钥1
FLASH_MODEKEYR_KEY2 0xCDEF89AB Flash 模式解锁密钥2
FLASH_BOOT_MODEKEYR_KEY1 0x45670123 引导模式解锁密钥1
FLASH_BOOT_MODEKEYR_KEY2 0xCDEF89AB 引导模式解锁密钥2

EXTEN_LOCKUP_EN, EXTEN_LOCKUP_RSTF, EXTEN_LDO_TRIM, EXTEN_OPA_EN, EXTEN_OPA_NSEL, EXTEN_OPA_PSEL
#

增强功能寄存器位定义,用于调试与模拟电路控制
这些位控制芯片内部增强功能,如锁死检测(Lockup)、LDO 电压校准、运算放大器使能与输入选择。仅在特定调试或低功耗场景下使用,普通应用无需配置。

名称 简述
EXTEN_LOCKUP_EN 0x00000040 启用锁死检测功能(位6)
EXTEN_LOCKUP_RSTF 0x00000080 锁死复位标志(位7)
EXTEN_LDO_TRIM 0x00000400 LDO 电压校准位(位10)
EXTEN_OPA_EN 0x00010000 运算放大器使能
EXTEN_OPA_NSEL 0x00020000 运算放大器负输入选择
EXTEN_OPA_PSEL 0x00040000 运算放大器正输入选择

枚举
#

IRQn_Type
#

中断请求编号枚举(已在常量部分完整列出,此处为重复定义,实际为类型别名)
此枚举类型用于声明中断服务函数的参数或 NVIC 配置函数的输入,确保中断编号的类型安全。虽然值已在常量中定义,但枚举形式便于编译器检查和 IDE 自动补全。

注:本文件中 IRQn_Typetypedef enum 定义,其值与常量部分完全一致,无新增项。


结构体
#

ADC_TypeDef
#

模数转换器(ADC)寄存器结构体,映射 ADC1 的所有控制与数据寄存器
ADC 为 12 位逐次逼近型转换器,支持单次/连续转换、扫描模式、注入通道、DMA 传输。寄存器包括状态、控制、采样时间、比较阈值、转换序列与结果寄存器,支持多通道自动轮询。

名称 类型 简述
STATR __IO uint32_t 状态寄存器:AWD、EOC、JEOC 等标志位
CTLR1 __IO uint32_t 控制寄存器1:扫描模式、中断使能、AWD 通道选择
CTLR2 __IO uint32_t 控制寄存器2:ADON、CONT、DMA、触发源、校准
SAMPTR1 __IO uint32_t 采样时间寄存器1:通道10~15 的采样周期配置
SAMPTR2 __IO uint32_t 采样时间寄存器2:通道0~9 的采样周期配置
IOFR1 __IO uint32_t 注入通道1偏移寄存器
IOFR2 __IO uint32_t 注入通道2偏移寄存器
IOFR3 __IO uint32_t 注入通道3偏移寄存器
IOFR4 __IO uint32_t 注入通道4偏移寄存器
WDHTR __IO uint32_t 模拟看门狗高阈值寄存器
WDLTR __IO uint32_t 模拟看门狗低阈值寄存器
RSQR1 __IO uint32_t 规则序列寄存器1:SQ13~SQ16 与序列长度 L
RSQR2 __IO uint32_t 规则序列寄存器2:SQ7~SQ12
RSQR3 __IO uint32_t 规则序列寄存器3:SQ1~SQ6
ISQR __IO uint32_t 注入序列寄存器:JSQ1~JSQ4 与注入序列长度 JL
IDATAR1 __IO uint32_t 注入通道1转换结果寄存器
IDATAR2 __IO uint32_t 注入通道2转换结果寄存器
IDATAR3 __IO uint32_t 注入通道3转换结果寄存器
IDATAR4 __IO uint32_t 注入通道4转换结果寄存器
RDATAR __IO uint32_t 规则通道转换结果寄存器(32位)
DLYR __IO uint32_t 延迟控制寄存器:延迟值与源选择

所有寄存器均为 __IO uint32_t 类型,表示可读写且易变,编译器不会优化访问。

DBGMCU_TypeDef
#

调试 MCU 寄存器结构体,用于调试功能配置
仅包含两个寄存器:CFGR0 和 CFGR1,用于在调试模式下冻结定时器、关闭看门狗等,便于单步调试。

名称 类型 简述
CFGR0 __IO uint32_t 调试配置寄存器0
CFGR1 __IO uint32_t 调试配置寄存器1

DMA_Channel_TypeDef
#

DMA 通道控制寄存器结构体,每个通道独立配置
每个通道包含配置、计数、源地址、目标地址寄存器,支持内存/外设双向传输、循环模式、优先级设置。

名称 类型 简述
CFGR __IO uint32_t 通道配置寄存器:使能、方向、大小、优先级、循环、内存递增等
CNTR __IO uint32_t 传输计数寄存器:剩余传输字节数
PADDR __IO uint32_t 外设地址寄存器
MADDR __IO uint32_t 内存地址寄存器

DMA_TypeDef
#

DMA 控制器全局寄存器结构体,管理中断与清除标志
包含中断状态寄存器与中断清除寄存器,用于查询和清除各通道的传输完成、错误等事件。

名称 类型 简述
INTFR __IO uint32_t 中断标志寄存器:各通道的 GIF、TCIF、HTIF、TEIF
INTFCR __IO uint32_t 中断清除寄存器:对应标志位写1清零

EXTI_TypeDef
#

外部中断/事件控制器寄存器结构体
管理 10 条外部中断线(0~9)的使能、触发方式(上升/下降)、软件触发与挂起状态。

名称 类型 简述
INTENR __IO uint32_t 中断使能寄存器:MR0~MR9
EVENR __IO uint32_t 事件使能寄存器:与中断类似,但不触发 CPU 中断
RTENR __IO uint32_t 上升沿触发使能寄存器:TR0~TR9
FTENR __IO uint32_t 下降沿触发使能寄存器:TR0~TR9
SWIEVR __IO uint32_t 软件中断触发寄存器:SWIEVR0~SWIEVR9
INTFR __IO uint32_t 中断挂起标志寄存器:INTF0~INTF9

FLASH_TypeDef
#

Flash 存储器控制器寄存器结构体
用于 Flash 编程、擦除、读保护、选项字节操作。包含密钥、状态、控制、地址、选项字节等寄存器。

名称 类型 简述
ACTLR __IO uint32_t Flash 控制寄存器:等待状态(Latency)
KEYR __IO uint32_t Flash 解锁密钥寄存器
OBKEYR __IO uint32_t 选项字节解锁密钥寄存器
STATR __IO uint32_t 状态寄存器:BSY、WRPRTERR、EOP、LOCK
CTLR __IO uint32_t 控制寄存器:PG、PER、MER、STRT、LOCK、EOPIE 等
ADDR __IO uint32_t 目标地址寄存器
RESERVED __IO uint32_t 保留位
OBR __IO uint32_t 选项字节寄存器:RDPRT、USER、WDT_SW 等
WPR __IO uint32_t 写保护寄存器:每字节保护位
MODEKEYR __IO uint32_t Flash 模式密钥寄存器
BOOT_MODEKEYR __IO uint32_t 引导模式密钥寄存器

OB_TypeDef
#

选项字节寄存器结构体,独立于 Flash 控制器,位于 0x1FFFF800
用于配置读保护、看门狗模式、复位行为、用户数据等,写入需先解锁并擦除。

名称 类型 简述
RDPR __IO uint16_t 读保护选项字节(8位)
USER __IO uint16_t 用户选项字节(8位)
Data0 __IO uint16_t 用户数据存储0(8位)
Data1 __IO uint16_t 用户数据存储1(8位)
WRPR0 __IO uint16_t Flash 写保护0(8位)
WRPR1 __IO uint16_t Flash 写保护1(8位)

GPIO_TypeDef
#

通用输入/输出端口寄存器结构体,每个端口(A/C/D)独立实例
支持配置引脚模式(输入/输出/复用/模拟)、速度、上拉/下拉、置位/复位、锁定等功能。

名称 类型 简述
CFGLR __IO uint32_t 配置寄存器:MODE07(2位)与 CNF07(2位)
RESERVED0 uint32_t 保留位
INDR __IO uint32_t 输入数据寄存器:读取引脚电平
OUTDR __IO uint32_t 输出数据寄存器:写入引脚电平
BSHR __IO uint32_t 位设置/复位寄存器:BSx 设置,BRx 复位(32位)
BCR __IO uint32_t 位复位寄存器:BR0~BR7(16位)
LCKR __IO uint32_t 锁定寄存器:LCK0~LCK7 + LCKK 锁定序列

AFIO_TypeDef
#

复用功能与中断重映射控制器寄存器结构体
支持外设引脚重映射(如 USART1 从 PA9/PA10 移至 PB6/PB7)、EXTI 线路映射、SWD 调试接口配置。

名称 类型 简述
RESERVED0 uint32_t 保留位
PCFR1 __IO uint32_t 复用功能配置寄存器1:TIM1/TIM2/USART1/I2C1 重映射、SWJ_CFG
EXTICR __IO uint32_t 外部中断配置寄存器:EXTI0~7 映射到 PA/PB/PC/PD

I2C_TypeDef
#

I2C 通信接口寄存器结构体
支持主/从模式、DMA、PEC 校验、时钟拉伸、地址匹配。

名称 类型 简述
CTLR1 __IO uint16_t 控制寄存器1:PE、ACK、START、STOP、SWRST
RESERVED0 uint16_t 保留位
CTLR2 __IO uint16_t 控制寄存器2:FREQ、ITERREN、ITEVTEN、ITBUFEN、DMAEN、LAST
RESERVED1 uint16_t 保留位
OADDR1 __IO uint16_t 从机地址寄存器1:7位地址 + 10位地址模式
RESERVED2 uint16_t 保留位
OADDR2 __IO uint16_t 从机地址寄存器2:双地址使能与地址2
RESERVED3 uint16_t 保留位
DATAR __IO uint16_t 数据寄存器:发送/接收8位数据
RESERVED4 uint16_t 保留位
STAR1 __IO uint16_t 状态寄存器1:SB、ADDR、BTF、RXNE、TXE、BERR、AF、OVR
RESERVED5 uint16_t 保留位
STAR2 __IO uint16_t 状态寄存器2:MSL、BUSY、TRA、GENCALL、DUALF、PEC
RESERVED6 uint16_t 保留位
CKCFGR __IO uint16_t 时钟配置寄存器:CCR、DUTY、FS
RESERVED7 uint16_t 保留位

IWDG_TypeDef
#

独立看门狗寄存器结构体
独立于系统时钟,使用内部低速 RC 振荡器(LSI),用于系统死锁恢复。

名称 类型 简述
CTLR __IO uint32_t 控制寄存器:写入 0xAAAA 启动,0xCCCC 刷新
PSCR __IO uint32_t 预分频寄存器:PR[2:0],分频比 4~128
RLDR __IO uint32_t 重载寄存器:12位计数值,最大 4095
STATR __IO uint32_t 状态寄存器:PVU(预分频更新)、RVU(重载更新)

PWR_TypeDef
#

电源控制寄存器结构体
控制低功耗模式(睡眠、停机、待机)、PVD(电源电压检测)阈值、AWU(自动唤醒)。

名称 类型 简述
CTLR __IO uint32_t 控制寄存器:PDDS、PVDE、PLS(PVD阈值)
CSR __IO uint32_t 状态寄存器:PVDO(PVD输出)
AWUCSR __IO uint32_t AWU 控制状态寄存器:AWUEN
AWUWR __IO uint32_t AWU 窗口寄存器:唤醒时间窗口
AWUPSC __IO uint32_t AWU 预分频寄存器:分频比 1~61440

RCC_TypeDef
#

复位与时钟控制寄存器结构体
系统时钟源选择(HSI/HSE/PLL)、AHB/APB 分频、ADC 预分频、PLL 使能、时钟安全系统(CSS)。

名称 类型 简述
CTLR __IO uint32_t 控制寄存器:HSION、HSEON、PLLON、CSSON
CFGR0 __IO uint32_t 时钟配置寄存器0:SW、HPRE、ADCPRE、PLLSRC、MCO
INTR __IO uint32_t 中断寄存器:LSIRDYF、HSIRDYF、HSERDYF、PLLRDYF、CSSF
APB2PRSTR __IO uint32_t APB2 外设复位寄存器:AFIO、IOPA、ADC1、TIM1、SPI1、USART1
APB1PRSTR __IO uint32_t APB1 外设复位寄存器:TIM2、WWDG、I2C1、PWR
AHBPCENR __IO uint32_t AHB 外设时钟使能寄存器:DMA1、SRAM
APB2PCENR __IO uint32_t APB2 外设时钟使能寄存器:AFIO、IOPA、ADC1、TIM1、SPI1、USART1
APB1PCENR __IO uint32_t APB1 外设时钟使能寄存器:TIM2、WWDG、I2C1、PWR
RESERVED0 __IO uint32_t 保留位
RSTSCKR __IO uint32_t 复位与时钟状态寄存器:LSION、LSIRDY、RMVF、PINRSTF、PORRSTF、SFTRSTF、IWDGRSTF、WWDGRSTF、LPWRRSTF

SPI_TypeDef
#

串行外设接口寄存器结构体
支持主/从模式、DMA、CRC、双线单工、数据帧长度(8/16位)。

名称 类型 简述
CTLR1 __IO uint16_t 控制寄存器1:CPHA、CPOL、MSTR、BR、SPE、LSBFIRST、SSM、RXONLY、DFF、CRCEN
RESERVED0 uint16_t 保留位
CTLR2 __IO uint16_t 控制寄存器2:RXDMAEN、TXDMAEN、SSOE、ERRIE、RXNEIE、TXEIE
RESERVED1 uint16_t 保留位
STATR __IO uint16_t 状态寄存器:RXNE、TXE、CHSIDE、UDR、CRCERR、MODF、OVR、BSY
RESERVED2 uint16_t 保留位
DATAR __IO uint16_t 数据寄存器:发送/接收数据
RESERVED3 uint16_t 保留位
CRCR __IO uint16_t CRC 多项式寄存器
RESERVED4 uint16_t 保留位
RCRCR __IO uint16_t 接收 CRC 寄存器
RESERVED5 uint16_t 保留位
TCRCR __IO uint16_t 发送 CRC 寄存器
RESERVED6 uint16_t 保留位
RESERVED7 uint32_t 保留位
RESERVED8 uint32_t 保留位
HSCR __IO uint16_t 高速模式控制寄存器:HSRXEN
RESERVED9 uint16_t 保留位

TIM_TypeDef
#

通用/高级定时器寄存器结构体
支持输入捕获、输出比较、PWM、编码器接口、触发输出、死区时间、DMA 请求。

名称 类型 简述
CTLR1 __IO uint16_t 控制寄存器1:CEN、UDIS、URS、OPM、DIR、CMS、ARPE、CKD
RESERVED0 uint16_t 保留位
CTLR2 __IO uint16_t 控制寄存器2:CCPC、CCUS、CCDS、MMS、TI1S、OISx
RESERVED1 uint16_t 保留位
SMCFGR __IO uint16_t 从模式控制寄存器:SMS、TS、MSM、ETF、ETPS、ECE、ETP
RESERVED2 uint16_t 保留位
DMAINTENR __IO uint16_t DMA/中断使能寄存器:UIE、CCxIE、COMIE、TIE、BIE、UDE、CCxDE、COMDE、TDE
RESERVED3 uint16_t 保留位
INTFR __IO uint16_t 中断标志寄存器:UIF、CCxIF、COMIF、TIF、BIF、CCxOF
RESERVED4 uint16_t 保留位
SWEVGR __IO uint16_t 软件事件生成寄存器:UG、CCxG、COMG、TG、BG
RESERVED5 uint16_t 保留位
CHCTLR1 __IO uint16_t 通道1/2控制寄存器1:CC1S、OC1M、OC1PE、IC1PSC、IC1F、CC2S、OC2M、OC2PE
RESERVED6 uint16_t 保留位
CHCTLR2 __IO uint16_t 通道3/4控制寄存器1:CC3S、OC3M、OC3PE、IC3PSC、IC3F、CC4S、OC4M、OC4PE
RESERVED7 uint16_t 保留位
CCER __IO uint16_t 捕获/比较使能寄存器:CCxE、CCxP、CCxNE、CCxNP
RESERVED8 uint16_t 保留位
CNT __IO uint16_t 计数器值寄存器
RESERVED9 uint16_t 保留位
PSC __IO uint16_t 预分频器寄存器
RESERVED10 uint16_t 保留位
ATRLR __IO uint16_t 自动重载寄存器
RESERVED11 uint16_t 保留位
RPTCR __IO uint16_t 重复计数器寄存器(仅高级定时器)
RESERVED12 uint16_t 保留位
CH1CVR __IO uint32_t 通道1捕获/比较值寄存器
CH2CVR __IO uint32_t 通道2捕获/比较值寄存器
CH3CVR __IO uint32_t 通道3捕获/比较值寄存器
CH4CVR __IO uint32_t 通道4捕获/比较值寄存器
BDTR __IO uint16_t 死区与刹车寄存器:DTG、LOCK、OSSI、OSSR、BKE、BKP、AOE、MOE
RESERVED13 uint16_t 保留位
DMACFGR __IO uint16_t DMA 控制寄存器:DBA(DMA基地址)、DBL(DMA长度)
RESERVED14 uint16_t 保留位
DMAADR __IO uint16_t DMA 地址寄存器:DMAB(DMA缓冲区地址)
RESERVED15 uint16_t 保留位

USART_TypeDef
#

通用异步收发器寄存器结构体
支持全双工、同步、IrDA、SmartCard、LIN、硬件流控(RTS/CTS)。

名称 类型 简述
STATR __IO uint16_t 状态寄存器:PE、FE、NE、ORE、IDLE、RXNE、TC、TXE、LBD、CTS
RESERVED0 uint16_t 保留位
DATAR __IO uint16_t 数据寄存器:9位数据(0~511)
RESERVED1 uint16_t 保留位
BRR __IO uint16_t 波特率寄存器:DIV_Mantissa + DIV_Fraction
RESERVED2 uint16_t 保留位
CTLR1 __IO uint16_t 控制寄存器1:SBK、RWU、RE、TE、IDLEIE、RXNEIE、TCIE、TXEIE、PEIE、PS、PCE、WAKE、M、UE
RESERVED3 uint16_t 保留位
CTLR2 __IO uint16_t 控制寄存器2:ADD、LBDL、LBDIE、LBCL、CPHA、CPOL、CLKEN、STOP、LINEN
RESERVED4 uint16_t 保留位
CTLR3 __IO uint16_t 控制寄存器3:EIE、IREN、IRLP、HDSEL、NACK、SCEN、DMAR、DMAT、RTSE、CTSE、CTSIE
RESERVED5 uint16_t 保留位
GPR __IO uint16_t 通用寄存器:PSC(预分频)、GT(保护时间)
RESERVED6 uint16_t 保留位

WWDG_TypeDef
#

窗口看门狗寄存器结构体
具有时间窗口限制的看门狗,必须在指定窗口内刷新,否则复位。

名称 类型 简述
CTLR __IO uint32_t 控制寄存器:T[6:0](计数器值)、WDGA(激活位)
CFGR __IO uint32_t 配置寄存器:W[6:0](窗口值)、WDGTB[1:0](时间基准)、EWI(提前唤醒中断)
STATR __IO uint32_t 状态寄存器:EWIF(提前唤醒中断标志)

EXTEN_TypeDef
#

增强功能寄存器结构体
用于控制芯片内部增强功能,如运算放大器、LDO 校准、锁死检测。

名称 类型 简述
EXTEN_CTR __IO uint32_t 增强功能控制寄存器:LOCKUP_EN、LOCKUP_RSTF、LDO_TRIM、OPA_EN、OPA_NSEL、OPA_PSEL

函数
#

本文件为头文件,仅定义寄存器结构体与常量,不包含任何函数原型。函数实现位于对应的 .c 库文件中(如 ch32v00x_gpio.c),本文件仅提供硬件抽象接口。

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

相关文章

ch32v00x_adc.h

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

ch32v00x_dma.h

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

ch32v00x_exti.h

该文件包含外部中断(EXTI)固件库的所有函数原型与数据类型定义,用于配置和管理微控制器的外部中断与事件线。EXTI 模块允许将 GPIO 引脚或其他片上事件(如 PVD 输出、电源唤醒)映射为独立的中断或事件通道,支持边沿触发(上升沿、下降沿或双边沿)和中断/事件模式分离,实现低功耗下的高效事件响应。所有配置通过结构体初始化和寄存器位操作完成,符合标准外设库设计范式。