我閱讀了CH32X035的QC例程,其中DP DM腳輸出3.3V是通過控制AFIO->CTRL中的PUE位來進(jìn)行控制的,但是L103的文檔中并沒有這些位,L103要通過UH_PD_DIS和UC_SYS_CTRL來控制DPDM的上下拉,但是只能同時(shí)啟用和禁用,請(qǐng)問如何才能一個(gè)腳輸出0.6,另一個(gè)腳輸出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);
}
可以參考以上代碼段
謝謝,經(jīng)過驗(yàn)證,可以成功觸發(fā)QC檔位