教程
system_ch32v00x.h
该文件定义了 CH32V00x 系列微控制器的系统级初始化接口与全局时钟变量,提供系统时钟配置、更新和外设时钟管理的函数原型。通过 SystemInit() 初始化系统时钟源(HSI/HSE)及 PLL,通过 SystemCoreClockUpdate() 动态读取当前时钟配置,确保软件运行时能准确获取核心时钟频率。该模块是所有外设驱动的时钟基础,必须在应用初始化阶段优先调用。
ch32v00x.h
该文件是 CH32V003 微控制器的外设访问层头文件,定义了所有外设寄存器的内存映射、位域常量、中断向量、时钟配置、GPIO 控制结构及系统级常量。它为标准外设库提供底层硬件抽象,使开发者可通过结构体指针直接访问寄存器,或通过位掩码配置外设功能。本文件不包含函数原型,仅提供寄存器定义与常量,是所有外设驱动开发的基础。
ch32v00x_wwdg.h
该文件包含窗口看门狗(WWDG)固件库的所有函数原型和常量定义。WWDG 是一种独立于主时钟的看门狗定时器,用于在系统因异常导致程序跑飞时强制复位,保障系统可靠性。其核心特性是“窗口”机制:计数器必须在特定窗口范围内被刷新,否则将触发复位,从而防止软件在错误状态下“侥幸”喂狗。本库提供初始化、配置、使能和状态查询等完整功能接口,适用于对系统稳定性要求严苛的嵌入式应用。
ch32v00x_usart.h
该文件包含 CH32V00x 系列微控制器 USART 固件库的所有函数原型、常量定义、枚举类型和结构体定义。USART(通用同步/异步收发器)支持异步 UART 模式和同步 SPI 模式,具备完整的硬件流控、IrDA、SmartCard、LIN 总线、半双工、过采样 8 倍等高级功能,适用于工业通信、传感器网络、智能卡读写等场景。所有配置参数均通过位域组合实现高效寄存器控制,避免了冗余的函数调用,提升了实时性与灵活性。
ch32v00x_tim.h
该文件定义了CH32V00x系列微控制器定时器(TIM)固件库的所有常量、枚举、结构体及函数原型,用于配置和控制TIM1与TIM2定时器外设。支持定时器基本计数、PWM输出、输入捕获、编码器接口、外部时钟同步、死区控制、互补输出、DMA传输及中断管理等高级功能。所有配置均通过结构体初始化和寄存器位操作实现,适用于电机控制、电源管理、精密测频与信号生成等应用场景。TIM1为高级定时器,支持互补输出与死区时间;TIM2为通用定时器,功能受限但资源更紧凑。
ch32v00x_spi.h
该文件包含 CH32V00x 系列微控制器 SPI 外设固件库的所有函数原型、常量定义、枚举类型和结构体定义。SPI(串行外设接口)是一种高速、全双工、同步的通信协议,广泛用于连接微控制器与传感器、存储器、显示器等外设。本库支持主从模式切换、CRC 校验、DMA 传输、软件 NSS 管理、单双线模式等高级功能,特别针对 CH32V00x 系列的硬件特性进行了优化。注意:在从模式下发送数据时,必须将 SPI_CPOL 设置为高电平(SPI_CPOL_High),这是由芯片内部时序逻辑决定的硬性要求。
ch32v00x_rcc.h
该文件定义了CH32V00x系列微控制器复位与时钟控制(RCC)外设的所有常量、枚举、结构体及函数原型。RCC模块负责系统时钟源的选择、分频、PLL配置、外设时钟使能、时钟安全系统(CSS)管理以及复位标志的读取与清除。通过本库函数,开发者可灵活配置系统主频、AHB/APB总线分频、ADC时钟源、MCO输出时钟等关键参数,是系统初始化和低功耗管理的核心模块。所有时钟配置均需遵循芯片时序约束,例如HSE不能在作为系统时钟时被关闭,PLL不能在作为系统时钟时被禁用。
ch32v00x_pwr.h
该文件包含电源管理(PWR)固件库的所有函数原型、常量定义和寄存器操作接口,用于配置低功耗模式、电源电压检测(PVD)、自动唤醒(AWU)等功能。该库专为CH32V00x系列微控制器设计,通过操作PWR外设寄存器实现系统功耗优化,适用于电池供电、待机唤醒、电压监控等应用场景。所有常量均以PWR_为前缀,确保命名空间清晰,避免与其它外设冲突。
ch32v00x_opa.h
该文件包含 OPA(运算放大器)固件库的所有函数原型与数据类型定义,用于配置和控制 CH32V00x 系列微控制器中的内置运算放大器模块。OPA 通过外部扩展控制寄存器(EXTEN_CTR)进行配置,支持正负输入通道选择、使能/禁用控制,并提供结构体初始化辅助函数。该库设计简洁,仅包含必要功能,适用于低功耗模拟信号调理场景。
ch32v00x_misc.h
该文件包含 CH32V00x 微控制器中断嵌套控制与 NVIC(嵌套向量中断控制器)初始化相关的函数原型和配置常量。通过配置 CSR 寄存器(0x804)的 bit1,系统可选择是否启用中断嵌套,从而影响优先级分组的分配方式。该模块允许开发者在有限的优先级位宽下灵活配置抢占优先级与子优先级,以满足实时性需求。在不启用嵌套时,所有中断共享同一抢占层级,仅通过子优先级调度;启用嵌套后,可实现真正的多级抢占,提升关键中断响应效率。
ch32v00x_iwdg.h
该文件包含独立看门狗(IWDG)固件库的所有函数原型与常量定义。IWDG 是一个独立于系统时钟的硬件看门狗,用于在主程序跑飞或死循环时自动复位微控制器,提升系统可靠性。其计数器由内部低速 RC 振荡器(LSI)驱动,即使主时钟失效仍可正常工作。所有寄存器写入操作均需先启用写访问权限,且关键操作(如使能)会自动禁用后续写入,以防止误配置。
ch32v00x_i2c.h
该文件定义了 CH32V00x 系列微控制器 I2C 外设的固件库函数原型、常量、枚举和结构体,用于实现 I2C 主从模式通信。支持标准模式(100kHz)和快速模式(最高 400kHz),提供完整的事件状态监控机制,适用于与传感器、EEPROM、RTC 等 I2C 设备的可靠通信。所有寄存器操作均通过位掩码和预定义常量封装,提升代码可读性与移植性。事件定义遵循 I2C 协议状态机,便于开发者按通信流程进行状态轮询或中断处理。
ch32v00x_gpio.h
该文件包含 CH32V00x 系列微控制器 GPIO 固件库的所有函数原型、常量定义、枚举类型和结构体定义。本库提供对 GPIO 引脚的初始化、读写、复用映射、外部中断配置等完整控制功能,支持推挽输出、开漏输出、上拉/下拉输入、模拟输入等多种工作模式,并兼容复用功能(AF)和引脚重映射(Remap)机制。所有引脚操作均基于位掩码设计,支持单引脚或组合引脚操作,适用于嵌入式系统中对 I/O 端口的高效、精确控制。
ch32v00x_flash.h
该文件定义了 CH32V00x 系列微控制器 Flash 存储器固件库的所有常量、枚举、结构体声明及函数原型,涵盖 Flash 操作的核心功能,包括擦除、编程、写保护、选项字配置、中断与状态管理。所有操作均通过直接访问 Flash 控制寄存器实现,支持标准模式与高速模式,适用于系统启动配置、固件升级、参数存储等关键应用场景。本库特别针对 CH32V00x 的 64 字节页大小架构优化,提供细粒度控制能力,同时集成读保护、写保护、复位行为等安全选项,确保嵌入式系统在断电或异常情况下的数据完整性与安全性。
ch32v00x_exti.h
该文件包含外部中断(EXTI)固件库的所有函数原型与数据类型定义,用于配置和管理微控制器的外部中断与事件线。EXTI 模块允许将 GPIO 引脚或其他片上事件(如 PVD 输出、电源唤醒)映射为独立的中断或事件通道,支持边沿触发(上升沿、下降沿或双边沿)和中断/事件模式分离,实现低功耗下的高效事件响应。所有配置通过结构体初始化和寄存器位操作完成,符合标准外设库设计范式。
ch32v00x_dma.h
该文件定义了 CH32V00x 系列微控制器 DMA(直接存储器访问)外设的固件库函数原型、数据结构及常量宏。DMA 用于在不占用 CPU 资源的情况下实现外设与内存、内存与内存之间的高效数据传输,适用于高速数据采集、串口/ADC 缓冲、图像处理等场景。本库支持 7 个 DMA 通道,每个通道可独立配置传输方向、数据宽度、地址递增模式、优先级和循环模式,极大提升系统并发处理能力。
ch32v00x_dbgmcu.h
该文件包含 DBGMCU(调试监控单元)固件库的所有函数原型与常量定义,用于在调试模式下控制外设行为,如暂停看门狗、定时器等,以方便开发与调试。DBGMCU 允许在 CPU 停止时保持某些外设的暂停状态,避免调试过程中触发意外复位或计数,是嵌入式调试环境中关键的低层控制接口。所有配置均通过写入调试控制寄存器(DEBUG_CR,地址 0x7C0)实现,该寄存器由 CPU 的 CSR 指令直接访问,具有极低的延迟和硬件级控制能力。
ch32v00x_adc.h
该文件定义了 CH32V00x 系列微控制器 ADC 外设的固件库所有函数原型、常量、枚举和结构体。ADC(模数转换器)支持单通道与多通道扫描转换、注入通道、模拟看门狗、DMA 请求、软件与外部触发等多种模式,适用于高精度模拟信号采集场景。本库通过寄存器掩码操作实现灵活配置,所有常量均以 uint32_t 或 uint8_t 类型定义,确保与硬件寄存器位域精确匹配。函数设计遵循标准外设库风格,支持初始化、启动、中断、校准、偏移设置等完整功能链,适用于工业控制、传感器接口、电源管理等嵌入式应用。