描述 #
该文件是 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_IRQn与SysTicK_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 操作前必须按顺序写入 0x45670123 和 0xCDEF89AB 两个密钥,否则写入将被拒绝。此机制防止意外写入,增强系统安全性。
| 名称 | 值 | 简述 |
|---|---|---|
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_Type为typedef 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 |
配置寄存器:MODE0 |
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),本文件仅提供硬件抽象接口。