1. 多路ADC可以使用STM32CubeMX软件快速完成配置:
配置多路ADC,这里启动了IN0、IN1和内部传感器三路通道:
每个ADC模块的详细配置参考下图:
2. 程序可参考如下编写:
for(i=0;i<3;i++)
{
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1,0xffff);
adcBuf[i] = HAL_ADC_GetValue(&hadc1);
printf("------ch:%d--%d-------\r\n", i, adcBuf[i]);
}
printf("\r\n");
HAL_ADC_Stop(&hadc1);
HAL_Delay(1000);
3. 内部温度传感器
对于内部温度传感器,可以根据以下程序进行温度计算:
double temperate;
temperate = (float)ad_convert_value*(3.3/4096); //电压值
temperate = (1.43-temperate)/4.3+25; //转换为温度值
之所以可以这样进行转换,是因为手册上有如下描述:
以上截图取自:
上面的图是计算公式,而下面的图给出了计算公式中两个参数的取值:
以上截图取自:
4. 运行效果