1.优化内部温度传感器和内部参考电压读取。
This commit is contained in:
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user