如何使用CH32L103进行QC诱骗?

我阅读了CH32X035的QC例程,其中DP DM脚输出3.3V是通过控制AFIO->CTRL中的PUE位来进行控制的,但是L103的文档中并没有这些位,L103要通过UH_PD_DIS和UC_SYS_CTRL来控制DPDM的上下拉,但是只能同时启用和禁用,请问如何才能一个脚输出0.6,另一个脚输出3.3呢?

void Set_dm_0v6(void)

{

    GPIO_InitTypeDef GPIO_InitStructure = {0};

    RCC_PB2PeriphClockCmd(RCC_PB2Periph_AFIO, ENABLE);

    RCC_PB2PeriphClockCmd(RCC_PB2Periph_GPIOA, ENABLE);               //On PD I/O clock, AFIO clock and PD clock

    AFIO->CR |= UDM_BC_VSRC;

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;

    GPIO_Init(GPIOA,&GPIO_InitStructure);


}

void Set_dm_3v3(void)

{

    GPIO_InitTypeDef GPIO_InitStructure = {0};

    AFIO->CR &= ~UDM_BC_VSRC;

    RCC_PB2PeriphClockCmd(RCC_PB2Periph_GPIOA, ENABLE);               //On PD I/O clock, AFIO clock and PD clock

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

    GPIO_Init(GPIOA,&GPIO_InitStructure);

    GPIO_SetBits(GPIOA, GPIO_Pin_11);


}

可以参考以上代码段


谢谢,经过验证,可以成功触发QC档位


只有登录才能回复,可以选择微信账号登录