🏠 首页📦 芯片包← 返回芯片库
国内芯片

HC32F005C6PA

小华半导体 XHSC
32-bit ARM Cortex-M0+
主频
32 MHz
Flash
32 KB
SRAM
4 KB
I/O 口
18
封装
TSSOP-20 / QFN-20
工作电压
1.8-3.6V
HC32F005C6PA 1 1 PA0 2 PA1 3 PA2 4 PA3 5 PA4 6 PA5 7 PA6 8 PA7 9 PB0 10 PB1 11 PB2 12 PB3 13 PB4 14 PB5 15 PB6 16 PB7 17 PC0 18 PC1 19 PC2 20 VDD
👆 点击上方芯片任意引脚查看复用功能
👆 点击上方芯片任意引脚查看复用功能
👆 点击上方芯片任意引脚查看复用功能

片上外设

UART×2SPII2CTimer×3PWM×6WatchdogComparator

芯片特性

示例代码 · GPIO 闪烁

HC32F005C6PA · main.c
// HC32F005 - DDL库 GPIO 闪烁
#include "hc32f005.h"
int main(void) {
    Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);
    Gpio_InitIO(0, 1, GpioDirOut);  // P01 输出
    while(1) {
        Gpio_SetIO(0, 1);
        delay1ms(500);
        Gpio_ClrIO(0, 1);
        delay1ms(500);
    }
}

📌 引脚分布(20引脚封装)

引脚号 引脚名 主要复用功能
1PA0GPIO / ADC_IN0 / TIM2_CH1 / UART2_TX
2PA1GPIO / ADC_IN1 / TIM2_CH2 / UART2_RX
3PA2GPIO / ADC_IN2 / TIM2_CH3 / UART1_TX
4PA3GPIO / ADC_IN3 / TIM2_CH4 / UART1_RX
5PA4GPIO / ADC_IN4 / SPI1_NSS / TIM3_CH1
6PA5GPIO / ADC_IN5 / SPI1_SCK / TIM3_CH2
7PA6GPIO / ADC_IN6 / SPI1_MISO / TIM3_CH3
8PA7GPIO / ADC_IN7 / SPI1_MOSI / TIM3_CH4
9PB0GPIO / ADC_IN8 / I2C1_SCL / TIM1_CH2N
10PB1GPIO / ADC_IN9 / I2C1_SDA / TIM1_CH3N
11PB2GPIO / BOOT0 / LVD_IN
12PB3GPIO / SWO / TIM1_CH1 / SPI2_SCK
13PB4GPIO / SWDIO / TIM1_CH2 / SPI2_MISO
14PB5GPIO / SWCLK / TIM1_CH3 / SPI2_MOSI
15PB6GPIO / I2C1_SCL / UART1_TX / TIM1_CH0
16PB7GPIO / I2C1_SDA / UART1_RX / TIM1_CH1
17PC0GPIO / OSC_IN / LSE_IN
18PC1GPIO / OSC_OUT / LSE_OUT
19PC2GPIO / VCAP
20VDD电源 1.8~5.5V
* 引脚复用功能以官方数据手册为准,本表为20引脚常见封装示例

💻 DDL 库函数示例

GPIO 初始化 + 翻转
// 小华 DDL 库 - GPIO 配置
#include "hc32f005.h"

void GPIO_Init(void) {
    stc_gpio_cfg_t stcGpioCfg;
    // 开启GPIO时钟
    Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);
    // PA0 推挽输出
    stcGpioCfg.enDir = GpioDirOut;
    stcGpioCfg.enDrv = GpioDrvH;
    Gpio_Init(GpioPortA, GpioPin0, &stcGpioCfg);
}

int main(void) {
    GPIO_Init();
    while(1) {
        Gpio_SetIO(GpioPortA, GpioPin0);  // 置高
        delay1ms(500);
        Gpio_ClrIO(GpioPortA, GpioPin0);  // 置低
        delay1ms(500);
    }
}
UART 发送 + 接收中断
// 小华 DDL 库 - UART1 配置
#include "hc32f005.h"

void UART1_Init(uint32_t baud) {
    stc_uart_cfg_t stcCfg;
    Sysctrl_SetPeripheralGate(SysctrlPeripheralUart1, TRUE);
    // PA2=TX, PA3=RX
    Gpio_SetAfMode(GpioPortA, GpioPin2, GpioAf1);
    Gpio_SetAfMode(GpioPortA, GpioPin3, GpioAf1);
    stcCfg.enRunMode = UartMskMode1;
    stcCfg.stcBaud.u32Baud = baud;
    stcCfg.stcBaud.enClkDiv = UartMskBaudDivm128;
    Uart_Init(UART1, &stcCfg);
    Uart_EnableIrq(UART1, UartRxIrq);
    EnableNvic(UART1_IRQn, IrqLevel3, TRUE);
}

void UART1_SendChar(char c) {
    Uart_SendData(UART1, c);
    while(Uart_GetStatus(UART1, UartTxEmpty) == FALSE);
}
ADC 采集 + 软件延时
// 小华 DDL 库 - ADC 单次转换
#include "hc32f005.h"

uint16_t ADC_Read(uint8_t ch) {
    stc_adc_cfg_t stcAdcCfg;
    stc_adc_norm_cfg_t stcNormCfg;
    Sysctrl_SetPeripheralGate(SysctrlPeripheralAdc, TRUE);
    // PA0 模拟输入
    Gpio_SetAnalogMode(GpioPortA, GpioPin0);
    DDL_ZERO_STRUCT(stcAdcCfg);
    stcAdcCfg.enAdcMode = AdcSglMode;
    Adc_Init(&stcAdcCfg);
    DDL_ZERO_STRUCT(stcNormCfg);
    stcNormCfg.enAdcInCh = ch;
    Adc_ConfigNormMode(&stcNormCfg);
    Adc_Start();
    while(Adc_GetEocFlag() == FALSE);
    return Adc_GetNormResultData();
}

🗺️ 存储映射 (Memory Map)

区域 起始地址 结束地址 说明
Flash 0x00000000 0x00007FFF 32KB 主闪存
SRAM 0x20000000 0x20000FFF 4KB 静态RAM
Peripherals 0x40000000 0x40020000 GPIO/UART/SPI/I2C/ADC/TIMER
Cortex-M0+ 0xE0000000 0xE00FFFFF NVIC, SysTick, SCB

📝 官方外设示例代码

GPIO 外设示例
// 小华DDL库 - GPIO初始化+翻转
#include "hc32f005.h"
void GPIO_Init(void) {
    stc_gpio_cfg_t stcGpioCfg;
    Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);
    stcGpioCfg.enDir = GpioDirOut;
    stcGpioCfg.enDrv = GpioDrvH;
    Gpio_Init(GpioPortA, GpioPin0, &stcGpioCfg);
}
int main(void) {
    GPIO_Init();
    while(1) {
        Gpio_SetIO(GpioPortA, GpioPin0);
        delay1ms(500);
        Gpio_ClrIO(GpioPortA, GpioPin0);
        delay1ms(500);
    }
}
UART 外设示例
// 小华DDL库 - UART1发送+接收中断
void UART1_Init(uint32_t baud) {
    stc_uart_cfg_t stcCfg;
    Sysctrl_SetPeripheralGate(SysctrlPeripheralUart1, TRUE);
    Gpio_SetAfMode(GpioPortA, GpioPin2, GpioAf1); // TX
    Gpio_SetAfMode(GpioPortA, GpioPin3, GpioAf1); // RX
    stcCfg.enRunMode = UartMskMode1;
    stcCfg.stcBaud.u32Baud = baud;
    Uart_Init(UART1, &stcCfg);
    Uart_EnableIrq(UART1, UartRxIrq);
}

官方资源

相关芯片推荐(国内)

← 上一款:HC32L130K8TA 11 / 14 下一款:GD32F103C8T6 →