
Nanjing Qinheng Microelectronics Co., Ltd. 2025.04

https://wch-ic.com


Directory
  |
  |-- CH32V30x: RISC-V MCU
  |      |-- EVT: CH32V30xEVT Evaluation Board and CH32V30x CH32V317 related software routines
  |      |      |-- PUB: 
  |      |      |      |-- CH32V30xEVT Evaluation Board Manual.pdf: CH32V30xEVT evaluation board introduction and project creation description
  |      |      |      |-- CH32V30xSCH.pdf: Schematic of CH32V307EVT evaluation board
  |      |      |      |--  SCHPCB: Schematic and PCB of CH32V30xEVT evaluation board
  |      |      |-- EXAM: 
  |      |      |      |-- SRC  
  |      |      |      |      |-- Core: kernal system header file
  |      |      |      |      |-- Debug: delay fuction, UART debugging source file and header file
  |      |      |      |      |-- Ld: ld file  
  |      |      |      |      |-- Peripheral: basic peripheral driver source file and header file
  |      |      |      |      |-- Startup: startup file. For different devices selected by users, the following 2 startup files are provided, and the matched device definition is selected in the ch32v30x.h file.
  |      |      |      |      |      |-- startup_ch32v30x_D8.S: applied to the CH32V303
  |      |      |      |      |      |-- startup_ch32v30x_D8C.S: applied to the CH32V307 CH32V317 and the CH32V305  
  |      |      |      |-- ADC
  |      |      |      |      |-- ADC_DMA: ADC DMA sampling routines
  |      |      |      |      |-- AnalogWatchdog: analog watchdog routine
  |      |      |      |      |-- Auto_Injection: automatic injection mode routine
  |      |      |      |      |-- Discontinuous_mode: discontinuous mode routine
  |      |      |      |      |-- DualADC_AlternateTrigger: dual ADC alternate trigger sampling routine  
  |      |      |      |      |-- DualADC_Combined_RegInjectionSimul: dual ADC combined regular + injection + simultaneous sampling routine
  |      |      |      |      |-- DualADC_FastInterleaved: dual ADC fast interleaved sampling routine
  |      |      |      |      |-- DualADC_InjectionSimul: dual ADC injection simultaneous sampling routine
  |      |      |      |      |-- DualADC_RegSimul: dual ADC regular simultaneous sampling routine
  |      |      |      |      |-- DualADC_SlowInterleaved: dual ADC slow interleaved sampling routine  
  |      |      |      |      |-- ExtLines_Trigger: external lines trigger ADC conversion routine
  |      |      |      |      |-- Internal_Temperature: internal temperature sensor routine 
  |      |      |      |      |-- TIM_Trigger:TIM trigger ADC conversion routine 
  |      |      |      |      |-- Temperature_External_channel:Temperature-External channel Injection alternating inversion routine 
  |      |      |      |-- APPLICATION
  |      |      |      |      |-- WS2812_LED
  |      |      |      |      |      |-- WS2812_LED：SPI\PWM Operates WS2812_LED routine 
  |      |      |      |-- BKP
  |      |      |      |      |-- BKP：BKP routine 
  |      |      |      |-- CAN
  |      |      |      |      |-- Networking: CAN routine: normal mode, standard frame and expanded frame data transceiver
  |      |      |      |      |-- TestMode: test mode, including silent mode, loopback mode and loopback silent mode
  |      |      |      |      |-- Time-triggered: time triggered communication mode   
  |      |      |      |-- CRC
  |      |      |      |      |-- CRC_Calculation：CRC routine
  |      |      |      |-- DAC 
  |      |      |      |      |-- DAC_DMA: DAC DMA conversion routines
  |      |      |      |      |-- DAC_Exit_9_Trig: external trigger DAC conversion routine
  |      |      |      |      |-- DAC_Noise_Generation: noise waveform generation routine
  |      |      |      |      |-- DAC_Normal_OUT: normal output routine
  |      |      |      |      |-- DAC_Timer_Trig: timer trigger DAC conversion routine
  |      |      |      |      |-- DAC_Triangle_Generation: triangular waveform generation routine
  |      |      |      |      |-- DualDAC_SineWave: dual DAC output sine wave routine
  |      |      |      |      |-- DualDAC_Triangle: dual DAC output triangular wave routine 
  |      |      |      |-- DMA
  |      |      |      |      |-- DMA_MEM2MEM: memory to memory mode routine
  |      |      |      |      |-- DMA_MEM2PERIP: see each peripheral subroutine for memory to peripheral mode and peripheral to memory mode routines
  |      |      |      |-- DVP ----only for CH32V30x_D8C
  |      |      |      |      |-- DVP_TFTLCD: DVP routine to operate OV2640 camera video mode to display image on LCD
  |      |      |      |      |-- DVP_UART: DVP routine to operate OV2640 camera JPEG mode
  |      |      |      |-- ETH ----only for CH32V30x_D8C
  |      |      |      |      |-- 1_Tool_Doc:ETH routine related documents and tools  
  |      |      |      |      |-- 8_UART_Server: demonstration routine of 8 UART network server   
  |      |      |      |      |-- DHCP: DHCP demonstration routine to obtain IP automatically
  |      |      |      |      |-- DNS: DHCP demonstration routine to obtain IP automatically and then request domain name resolution 
  |      |      |      |      |-- ETH_CFG: ETH_CFG routine. Create a UDP Server to communicate with upper computer, to configure WCHNET functions, including configuring various parameters and creating a new communication. 
  |      |      |      |      |-- ETH_IAP: ETH IAP routine
  |      |      |      |      |-- ETH_UART: ETH_UART routine, to demonstrate data transparent transfer between Ethernet and UART 
  |      |      |      |      |-- IPRaw_PING: IP_RAW routine, to demonstrate that the TCP client receives data after connecting to the server and then sends it back
  |      |      |      |      |-- Mail: mail routine, to demonstrate reception and transmission of SMTP and POP3 mails 
  |      |      |      |      |-- MQTT: MQTT routine, to demonstrate MQTT protocol communication based on TCP/IP   
  |      |      |      |      |-- NetLib: Network protocol stack library file
  |      |      |      |      |-- TcpClient: demonstration routine that TCP client receives data after connecting to the server and then returns data 
  |      |      |      |      |-- TcpServer: demonstration routine that TCP server receives data after connecting to the client and then returns data
  |      |      |      |      |-- UdpClient: demonstration routine that Udp Client receives data and returns data
  |      |      |      |      |-- UdpServer: demonstration routine that Udp Server receives data and returns data
  |      |      |      |      |-- ETH_Filter_Multicast:demonstrate filtering and multicast sending functions
  |      |      |      |      |-- WebServer: Web Server routine, to demonstrate the configuration of WCHNET device functions through Web browser. As the WCHNET devices have built-in web server, the network parameter configuration and password management of WCHNET can be implemented on the web page.   
  |      |      |      |      |-- IoCHub
  |      |      |      |      |      |--  Lib:IoCHub library file
  |      |      |      |      |      |--  IoCHub_Demo:IoCHub basic routines, using AT commands to implement IoCHub's basic function demonstration on MCU
  |      |      |      |-- EXTI
  |      |      |      |      |-- EXTI0:External Interrupt Routine
  |      |      |      |-- FLASH
  |      |      |      |      |-- FLASH_Program:FLASH erase/read/write, and fast programming 
  |      |      |      |-- FPU
  |      |      |      |      |-- FPU：FPU hardware floating point operation routine
  |      |      |      |-- FreeRTOS
  |      |      |      |      |-- FreeRTOS_Core:FreeRTOS migration routines
  |      |      |      |-- FSMC  
  |      |      |      |      |-- LCD: FSMC routine to operate TFTLCD
  |      |      |      |      |-- NANDFLASH: FSMC routine to operate NANDFLASH 
  |      |      |      |      |-- SRAM: FSMC routine to operate NOR_ SRAM 
  |      |      |      |      |-- NORFLASH: FSMC routine to operate NORFLASH 
  |      |      |      |      |-- LCD_8bit：8 bit data bus LCD routine
  |      |      |      |-- GPIO
  |      |      |      |      |-- GPIO_Toggle:GPIO routines 
  |      |      |      |-- HarmonyOS
  |      |      |      |      |-- LiteOS_m：HarmonyOS migration routine
  |      |      |      |-- I2C
  |      |      |      |      |-- I2C_7bit_Mode: 7-bit address mode, master/slave mode, transceiver routine
  |      |      |      |      |-- I2C_10bit_Mode: 10 bit address mode, master/slave mode transceiver routine
  |      |      |      |      |-- I2C_DMA: I2C DMA, master/slave mode transceiver routine
  |      |      |      |      |-- I2C_EEPROM: I2C interface routine to operate EEPROM peripheral 
  |      |      |      |      |-- I2C_PEC: PEC error check, master/slave mode transceiver routine
  |      |      |      |      |-- I2C_7bit_Interrupt_Mode：Use interrupt to receive and send routine 
  |      |      |      |-- I2S 
  |      |      |      |      |-- HostRx_SlaveTx: I2S master receiver slave transmitter routine
  |      |      |      |      |-- I2S_DMA: I2S master transmitter slave receiver DMA routine
  |      |      |      |      |-- I2S_Interupt: I2S master transmitter slave receiver interrupt routine
  |      |      |      |-- IAP: IAP upgrade routine, including the Hex to Bin tool and IAP upgrade tool  
  |      |      |      |      |-- USB+UART: USB+UART IAP routine    
  |      |      |      |-- INT
  |      |      |      |      |-- Interrupt_Nest: interrupt nested routine
  |      |      |      |      |-- Interrupt_VTF: VTF IRQ interrupt routine   
  |      |      |      |      |-- VectorInRAM：Vector in RAM routine  
  |      |      |      |-- IWDG
  |      |      |      |      |-- IWDG:Independent Watchdog routine 
  |      |      |      |-- OPA
  |      |      |      |      |-- OPA_Voltage_Follower：OPA4 as voltage follower output routine 
  |      |      |      |-- PWR
  |      |      |      |      |-- Sleep_Mode: low power, sleep mode routine
  |      |      |      |      |-- Standby_Mode: low power, standby mode routine
  |      |      |      |      |-- Stop_Mode: low power, stop mode routine
  |      |      |      |      |-- Standby_RAM_LV_Mode: when LV is enabled in standby mode, RAM 2k and 30K low-power data holding routines
  |      |      |      |      |-- Standby_RAM_Mode:when LV is not enabled in standby mode, RAM 2k and 30K low-power data holding routines
  |      |      |      |      |-- Standby_RAM_Application：When MCU in standby mode, RAM 2k and 30K low-power data holding application routine
  |      |      |      |      |-- PVD_Wakeup：STOP mode PVD wakeup MCU Routine
  |      |      |      |      |-- PVD_VoltageJudger：PVD voltage Judger Routine
  |      |      |      |      |-- CH32V317_LP_Mode：CH32V317 low power Routine
  |      |      |      |-- PMP
  |      |      |      |      |-- PMP：Physical memory protection Routine
  |      |      |      |-- RCC
  |      |      |      |      |-- Get_CLK:Get system-HCLK-AHB1-AHB2 clock routine  
  |      |      |      |      |-- MCO: MCO pin clock output routine
  |      |      |      |      |-- HSI_PLL_Source:HSI or HSI/2 as PLL input clock routine  
  |      |      |      |      |-- HSE_CLK:HSE frequency check routine 
  |      |      |      |      |-- HSI_Calibration：HSI calibrate routine
  |      |      |      |      |-- LSI_Calibration：LSI calibrate routine
  |      |      |      |-- RNG   
  |      |      |      |      |-- RNG：：Random number generator routine   
  |      |      |      |-- RTC
  |      |      |      |      |-- RTC_Calendar:Calendar Routines  
  |      |      |      |      |-- RTC_Calibration：RTC calibrate Routines 
  |      |      |      |-- RT-Thread
  |      |      |      |      |-- RT_Thread_Core:RT-Thread migration routine  
  |      |      |      |-- SDIO
  |      |      |      |      |-- SDIO_SD：SDIO routine to operate SD card
  |      |      |      |      |-- SDIO_SD_FATFS：SD card migrate FATFS file system
  |      |      |      |      |-- SDIO_EMMC：SDIO routine to operate eMMC card
  |      |      |      |      |-- SDIO_Mode：SDIO Host/Slave mode transceiver routine
  |      |      |      |-- SPI
  |      |      |      |      |-- 1Lines_half-duplex: single wire half duplex mode, master/slave mode, data transceiver
  |      |      |      |      |-- 2Lines_FullDuplex: two-wire full duplex mode, master/slave mode, data transceiver
  |      |      |      |      |-- FullDuplex_HardNSS: Hardware NSS mode, master/slave mode, data transceiver
  |      |      |      |      |-- SPI_CRC: CRC error check and master/slave mode transceiver routine
  |      |      |      |      |-- SPI_DMA: SPI uses DMA, master/slave mode transceiver routine
  |      |      |      |      |-- SPI_FLASH: SPI interface operation flash peripheral routine
  |      |      |      |      |-- SPI_LCD:SPI interface operation FLASH  and LCD peripheral routines
  |      |      |      |-- SDI_Printf
  |      |      |      |      |-- SDI_Printf：debug interface SDI, virtual serial port. 
  |      |      |      |-- SYSTICK 
  |      |      |      |      |-- SYSTICK_Interrupt：Systick timer routine    
  |      |      |      |-- TencentOS 
  |      |      |      |      |-- TencentOS：TencentOS migration routine
  |      |      |      |-- TIM
  |      |      |      |      |-- Clock_Select: clock source selection routine
  |      |      |      |      |-- ComplementaryOutput_DeadTime: complementary output and deadband insertion mode routines
  |      |      |      |      |-- ExtTrigger_Start_Two_Timer: external trigger routines to start two timers synchronously
  |      |      |      |      |-- Input_Capture: input capture routine
  |      |      |      |      |-- One_Pulse: single pulse output routine
  |      |      |      |      |-- Output_Compare_Mode: output comparison mode routine
  |      |      |      |      |-- PWM_Output: PWM output routine
  |      |      |      |      |-- Synchro_ExtTrigger:slave mode routine, including reset mode, gating mode and trigger mode
  |      |      |      |      |-- Synchro_Timer:timer synchronization mode
  |      |      |      |      |-- TIM_DMA: timer DMA routines
  |      |      |      |      |-- Encode:Timer encoder mode routines
  |      |      |      |      |-- TIM_INT:Timer interput mode routines
  |      |      |      |      |-- TIM_Continuous：Timer continuous routines
  |      |      |      |      |-- PWM_Phase_shifted：Timer PWM Phase shifted routines
  |      |      |      |      |-- PWM_6_Step：Timer 6_Step PWM routines
  |      |      |      |-- TOUCHKEY
  |      |      |      |      |-- TKey:TouchKey Detection Routine 
  |      |      |      |-- USART
  |      |      |      |      |-- USART_DMA: USART DMA, master/slave mode transceiver routine
  |      |      |      |      |-- USART_HalfDuplex: single wire half duplex mode, master/slave mode transceiver routine
  |      |      |      |      |-- USART_HardwareFlowControl: hardware flow control mode, master/slave mode, transceiver routine
  |      |      |      |      |-- USART_Interrupt: USART interrupt routine, master/slave mode transceiver routine
  |      |      |      |      |-- USART_MultiProcessorCommunication: multiprocessor communication mode routine
  |      |      |      |      |-- USART_Polling: polling transceiver mode, master/slave transceiver routine
  |      |      |      |      |-- USART_Printf: USART Print debugging routine
  |      |      |      |      |-- USART_SynchronousMode: synchronous mode, master/slave mode, transceiver routine
  |      |      |      |      |-- USART_Idle_Recv：USART use DMA receiving indeterminate length data routines
  |      |      |      |-- USB
  |      |      |      |      |-- USBFS
  |      |      |      |      |      |-- DEVICE
  |      |      |      |      |      |      |-- CH372:Simulates a custom USB device (CH372 device) with endpoints 1, 3 down and 2, 4 up. Data down from endpoint 1 is uploaded from endpoint 3 and not reversed, and data down from endpoint 2 is uploaded from endpoint 4 and reversed.
  |      |      |      |      |      |      |-- Compatibility_HID:Simulates HID devices, with data transmitted up and down through the serial port.
  |      |      |      |      |      |      |-- CompositeKM:Simulate keyboard and mouse, use IO to simulate keystrokes, while simulated data can be uploaded through serial port 2.
  |      |      |      |      |      |      |-- MSC_U-Disk: Smulates a simple USB flash drive, optionally using on-chip Flash or external SPI-Flash
  |      |      |      |      |      |      |-- MSC_CD-ROM: Simulate CDROM, need external SPI-Flash
  |      |      |      |      |      |      |-- SimulateCDC:Simulate a CDC serial port and use serial port 2 to send and receive.
  |      |      |      |      |      |      |-- SimulateCDC-HID:Simulate a CDC serial port, use serial port 2 to send and receive, HID interrupt endpoints to send and receive data to reverse and upload.  
  |      |      |      |      |      |      |-- UAC10_Headphone: Simulates a UAC 1.0 headset device and transmits the received audio data through the serial port
  |      |      |      |      |      |      |-- UAC10_Microphone: Simulates a UAC 1.0 microphone device and transmits the received audio data through the serial port
  |      |      |      |      |      |      |-- CH372_Double_Buffering: Demonstrates USB double buffering and provides 372 device speed test routine
  |      |      |      |      |      |-- HOST_IAP
  |      |      |      |      |      |      |-- APP: APP used with HOST_IAP, the project has modified the starting location of the program, after compilation, you need to convert the file into a bin file and rename it to APP.bin
  |      |      |      |      |      |      |-- HOST_IAP:  The host U disk IAP routine based on the U disk read file routine finishing, read the file with the name bit APP.bin from the U disk, write it to the internal flash, check it and jump automatically.
  |      |      |      |      |      |-- HOST_KM: The host operates the keypad, gets the data of the endpoints uploaded by the keypad and prints it, supports U-port under level 1 hub
  |      |      |      |      |      |-- HOST_MTP_FileSystem:Enumeration process of a USB host to a device that supports MTP and PTP protocols, supports MTP and PTP protocols, and reads its files
  |      |      |      |      |      |-- Host_Udisk:USB host operation USB disk routine 
  |      |      |      |      |      |-- Udisk_Lib:U disk file system library file   
  |      |      |      |      |-- USBHS 
  |      |      |      |      |      |-- DEVICE
  |      |      |      |      |      |      |-- CH372:Simulates a custom USB device (CH372 device) with endpoints 1, 3 down and 2, 4 up. Data down from endpoint 1 is uploaded from endpoint 3 and not reversed, and data down from endpoint 2 is uploaded from endpoint 4 and reversed.
  |      |      |      |      |      |      |-- Compatibility_HID:Simulates HID devices, with data transmitted up and down through the serial port.
  |      |      |      |      |      |      |-- CompositeKM:Simulate keyboard and mouse, use IO to simulate keystrokes, while simulated data can be uploaded through serial port 2.
  |      |      |      |      |      |      |-- MSC_U-Disk: Smulates a simple USB flash drive, optionally using on-chip Flash or external SPI-Flash
  |      |      |      |      |      |      |-- MSC_CD-ROM: Simulate CDROM, need external SPI-Flash
  |      |      |      |      |      |      |--USB_ECM-NetWorkAdaptor: USB ECM routines
  |      |      |      |      |      |      |--USB_RNDIS-NetWorkAdaptor: USB RNDIS routines
  |      |      |      |      |      |      |--USB_NCM-NetWorkAdaptor: USB NCM routines
  |      |      |      |      |      |      |-- SimulateCDC:Simulate a CDC serial port and use serial port 2 to send and receive.
  |      |      |      |      |      |      |-- SimulateCDC-HID:Simulate a CDC serial port, use serial port 2 to send and receive, HID interrupt endpoints to send and receive data to reverse and upload.  
  |      |      |      |      |      |      |-- CH372_Double_Buffering: Demonstrates USB double buffering and provides 372 device speed test routine
  |      |      |      |      |      |-- HOST_IAP
  |      |      |      |      |      |      |-- APP: APP used with HOST_IAP, the project has modified the starting location of the program, after compilation, you need to convert the file into a bin file and rename it to APP.bin
  |      |      |      |      |      |      |-- HOST_IAP:  The host U disk IAP routine based on the U disk read file routine finishing, read the file with the name bit APP.bin from the U disk, write it to the internal flash, check it and jump automatically.
  |      |      |      |      |      |-- HOST_KM: The host operates the keypad, gets the data of the endpoints uploaded by the keypad and prints it, supports U-port under level 1 hub
  |      |      |      |      |      |-- HOST_MTP_FileSystem:Enumeration process of a USB host to a device that supports MTP and PTP protocols, supports MTP and PTP protocols, and reads its files
  |      |      |      |      |      |-- Host_Udisk:USB host operation USB disk routine 
  |      |      |      |      |      |-- Udisk_Lib:U disk file system library file   
  |      |      |      |-- VoiceRcgExam 
  |      |      |      |      |-- VoiceRcgExam：individual term voice recognition routine   
  |      |      |      |-- WWDG
  |      |      |      |      |-- WWDG:Window Watchdog Routine

