四、代码 4.1、adc.c函数void MX_ADC3_Init(void)下添加如下用户代码。 
 
 
最后,在adc.c文件最底部编写函数float get_CPU_Temperature(uint32_t Timeout)。 
 
 float get_CPU_Temperature(uint32_t Timeout) {  
        uint16_t TS_CAL1;         uint16_t TS_CAL2;  
        HAL_ADC_Start(&hadc3);  /* 启动ADC3的转换 */  
        if(HAL_OK == HAL_ADC_PollForConversion(&hadc3,Timeout))  /* 等待ADC3的转换,超时时间Timeout */         {                 Temp_DC = HAL_ADC_GetValue(&hadc3);         }         else         {            printf("ADC Conversion failed! \n");         }  
        /* 根据参考手册给的公式计算温度值 */     TS_CAL1 = *(__IO uint16_t *)(0x1FF1E820);     TS_CAL2 = *(__IO uint16_t *)(0x1FF1E840);  
    Temp_oC = ((110.0f - 30.0f) / (TS_CAL2 - TS_CAL1)) * (Temp_DC - TS_CAL1) + 30.0f;  
    return Temp_oC; }  
 
 |