我阅读了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档位