基于stm32做ADC电压值采集利用ST7565R显示实时电压值的函数
时间: 2023-12-02 07:05:15 浏览: 174
ADC上位机,使用stm32测量电压值,并在上位机上面显示
5星 · 资源好评率100%
以下是基于STM32做ADC电压值采集并利用ST7565R显示实时电压值的示例代码:
```
void ST7565R_disp_voltage(void) {
ADC_HandleTypeDef hadc;
uint16_t adc_value;
float voltage_value;
char voltage_str[6] = {0};
// 初始化ADC
hadc.Instance = ADC1;
hadc.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2;
hadc.Init.Resolution = ADC_RESOLUTION_12B;
hadc.Init.DataAlign = ADC_DATAALIGN_RIGHT;
hadc.Init.ScanConvMode = DISABLE;
hadc.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
HAL_ADC_Init(&hadc);
// 启动ADC转换
HAL_ADC_Start(&hadc);
HAL_ADC_PollForConversion(&hadc, 100); // 等待转换完成
adc_value = HAL_ADC_GetValue(&hadc);
// 计算电压值
voltage_value = (float)adc_value * 3.3 / 4096;
sprintf(voltage_str, "%.2fV", voltage_value);
// 显示电压值
ST7565R_disp_string(0, 0, voltage_str);
}
```
该函数中,首先初始化ADC,然后启动ADC转换,等待转换完成后读取ADC转换结果,通过公式计算出电压值,最后将电压值转换成字符串并显示在ST7565R显示屏上。具体的 `ST7565R_disp_string()` 函数可以根据需要自行编写。该函数可以在定时器中断等周期性任务中调用,以实现实时显示电压值。
阅读全文