X035_DCOUT(基于CH32X035的PD3.1诱骗器)

功能介绍:

1.支持请求Fixed、PPS、EPR Fixed、EPR AVS

2.支持48V电源输入

3.支持5A电流检测

诱骗挡位选择:

电压电流检测:

方案详解


以上功能其实只需要一颗CH32X035G8U6:

  • RISC-V4C处理器,最高48MHz
  • 支持单周期乘法和硬件除法
  • 20KB SRAM,62KB Flash
  • 多路外部12位ADC转换通道
  • 2个16位高级定时器
  • 1个16位通用定时器
  • 多组运放OPA
  • 1个SPI接口
  • USB PD和Type-C控制器及PHY
  • 快速GPIO端口,支持24个外部中断

通过SPI+DMA驱动OLED,移植u8g2图形库实现丝滑菜单

通过按键,实现交互

通过内置USB PD PHY实现快充协议诱骗

通过内置OPA实现低端电流采样放大

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
hc32l13x的SYSTEM_INIT函数主要用于芯片初始化,在这个函数中会对芯片的各种模块进行初始化,例如时钟、GPIO、UART、ADC、DAC等。以下是一个示例: ```c #include "hc32l13x.h" void SYSTEM_INIT(void) { // 使能内部晶振 CLK_XtalIEn(); // 设置系统时钟源为内部晶振 CLK_SetSysClkSrc(CLK_SYSCLKSOURCE_XTALI); // 设置系统时钟分频为1 CLK_SetSysclkDiv(CLK_SYSCLK_DIV1); // 初始化GPIO模块 GPIO_Init(GPIO_PORT_1, GPIO_PIN_0, GPIO_MODE_OUT_PP_LOW_SLOW); // 初始化UART模块 M0P_UART->SCON_f.SM = 0; // 8位数据位 M0P_UART->SCON_f.REN = 1; // 允许接收 M0P_UART->SCON_f.PM = 0; // 无校验位 M0P_UART->SCON_f.FE = 0; // 无帧错误 M0P_UART->SCON_f.RI = 0; // 接收数据标志位清零 M0P_UART->SCON_f.TI = 0; // 发送数据标志位清零 M0P_UART->BGR = 0x0037; // 波特率为9600 // 初始化ADC模块 ADC_Init(ADC_UNIT_1, ADC_CH0, ADC_RESOLUTION_12B, ADC_TRGEN_EVENT_NONE, ADC_SA_NORMAL_MODE, NULL); // 初始化DAC模块 DAC_Init(DAC_CH_1, 0, DAC_ALIGN_RIGHT); } ``` 在以上代码中,我们首先使能了内部晶振,并将系统时钟源设置为内部晶振。然后,我们初始化了GPIO模块,将P1.0引脚设置为输出模式,并设置初始电平为低电平。接下来,我们初始化了UART模块,将波特率设置为9600,数据位数为8位,无校验位和帧错误。然后,我们初始化了ADC模块,将ADC单元设置为ADC_UNIT_1,通道选择为ADC_CH0,分辨率设置为12位,触发源设置为无,采样模式设置为普通模式,最后一个参数为中断回调函数指针,这里我们设置为NULL。最后,我们初始化了DAC模块,将DAC通道设置为DAC_CH_1,对齐方式为右对齐,初始输出值为0。 需要注意的是,hc32l13x的SYSTEM_INIT函数是由启动文件startup_hc32l13x.s中的Reset_Handler函数调用的,因此在使用SYSTEM_INIT函数之前,需要先在启动文件中配置Reset_Handler函数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值