获取温度与系统时钟的频率
unsigned int adc_v;
double adcx;
double temp;
HAL_ADC_Start(&ADC3_Handler);
HAL_ADC_PollForConversion(&ADC3_Handler,10);
LOG_D("System Clock information");
LOG_D("SYSCLK_Frequency = %d", HAL_RCC_GetSysClockFreq());
LOG_D("HCLK_Frequency = %d", HAL_RCC_GetHCLKFreq());
LOG_D("PCLK1_Frequency = %d", HAL_RCC_GetPCLK1Freq());
LOG_D("PCLK2_Frequency = %d", HAL_RCC_GetPCLK2Freq());
adc_v = HAL_ADC_GetValue(&ADC3_Handler);
adcx = (110.0-30.0)/(*(unsigned short*)(0x1FF1E840) - *(unsigned short*)(0x1FF1E820));
temp = adcx*(adc_v - *(unsigned short*)(0x1FF1E820))+30;
LOG_D("STM32H7 temp is %f",temp);
|