1.优化内部温度传感器和内部参考电压读取。

This commit is contained in:
MacRsh
2023-05-22 23:33:36 +08:00
parent 59694026cd
commit d1011ec1bf

View File

@@ -65,11 +65,17 @@ mr_err_t ch32_adc_channel_configure(mr_adc_t adc, mr_uint16_t channel, mr_state_
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIOx = GPIOB;
} else
} else if (channel <= 15)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIOx = GPIOC;
}
else if(channel <= 17)
{
ADC_TempSensorVrefintCmd(ENABLE);
}
else
return -MR_ERR_INVALID;
if (state == MR_ENABLE)
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
@@ -93,6 +99,9 @@ mr_uint32_t ch32_adc_read(mr_adc_t adc, mr_uint16_t channel)
struct ch32_adc *hw = (struct ch32_adc *)adc->device.data;
mr_uint32_t data = 0;
if (channel >17)
return 0;
ADC_RegularChannelConfig(hw->hw_adc.Instance, channel, 1, ADC_SampleTime_239Cycles5);
ADC_SoftwareStartConvCmd(hw->hw_adc.Instance, ENABLE);
while (! ADC_GetFlagStatus(hw->hw_adc.Instance, ADC_FLAG_EOC));