Skip to content

Commit 562efaf

Browse files
committed
Fix temperature reading F421G.
1 parent e704b4f commit 562efaf

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

Mcu/f421/Src/ADC.c

+7-6
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ uint16_t ADCDataDMA[1];
1212
#ifdef USE_ADC_INPUT
1313
uint16_t ADCDataDMA[4];
1414
#else
15-
uint16_t ADCDataDMA[3];
15+
uint16_t ADCDataDMA[4];
1616
#endif
1717
#endif
1818

@@ -32,7 +32,7 @@ void ADC_DMA_Callback()
3232
ADC_raw_current = ADCDataDMA[2];
3333
ADC_raw_input = ADCDataDMA[0];
3434
#else
35-
ADC_raw_temp = ADCDataDMA[2];
35+
ADC_raw_temp = ADCDataDMA[3];
3636
#ifdef PA6_VOLTAGE
3737
ADC_raw_volts = ADCDataDMA[1];
3838
ADC_raw_current = ADCDataDMA[0];
@@ -61,7 +61,7 @@ void ADC_Init(void)
6161
#ifdef PA6_NTC_ONLY
6262
dma_init_struct.buffer_size = 1;
6363
#else
64-
dma_init_struct.buffer_size = 3;
64+
dma_init_struct.buffer_size = 4;
6565
#endif
6666
dma_init_struct.direction = DMA_DIR_PERIPHERAL_TO_MEMORY;
6767
dma_init_struct.memory_base_addr = (uint32_t)&ADCDataDMA;
@@ -90,11 +90,12 @@ void ADC_Init(void)
9090
adc_base_config(ADC1, &adc_base_struct);
9191
adc_ordinary_channel_set(ADC1, ADC_CHANNEL_6, 1, ADC_SAMPLETIME_28_5);
9292
#else
93-
adc_base_struct.ordinary_channel_length = 3;
93+
adc_base_struct.ordinary_channel_length = 4;
9494
adc_base_config(ADC1, &adc_base_struct);
9595
adc_ordinary_channel_set(ADC1, ADC_CHANNEL_VOLTAGE, 1, ADC_SAMPLETIME_28_5);
9696
adc_ordinary_channel_set(ADC1, ADC_CHANNEL_CURRENT, 2, ADC_SAMPLETIME_28_5);
97-
adc_ordinary_channel_set(ADC1, ADC_CHANNEL_TEMP, 3, ADC_SAMPLETIME_28_5);
97+
adc_ordinary_channel_set(ADC1, ADC_CHANNEL_17, 3, ADC_SAMPLETIME_28_5);
98+
adc_ordinary_channel_set(ADC1, ADC_CHANNEL_16, 4, ADC_SAMPLETIME_239_5);
9899
#endif
99100
adc_tempersensor_vintrv_enable(TRUE);
100101
adc_ordinary_conversion_trigger_set(ADC1, ADC12_ORDINARY_TRIG_SOFTWARE, TRUE);
@@ -112,7 +113,7 @@ void ADC_Init(void)
112113

113114
int16_t getConvertedDegrees(uint16_t adcrawtemp)
114115
{
115-
return (12600 - (int32_t)adcrawtemp * 33000 / 4096) / -42 + 15;
116+
return (12800 - (int32_t)adcrawtemp * 33000 / 4096) / -42 + 25;
116117
}
117118

118119
#endif // USE_ADC

0 commit comments

Comments
 (0)