设计对电池电压进行检测的应用程序
STM32理解:https://blog.csdn.net/u010893262/article/details/68942710
一、ADC(Analog-to-Digital Converter)模数转换器
模拟信号----->数字信号
二、ADC外设的工作参数配置
二、ADC外设的工作参数配置
三、配置USART外设的工作参数
四、生成代码
在main.c文件中设置所需变量
/* USER CODE BEGIN PV */
// ADC转换值存放
uint16_t adc_value = 0;
// 电压值
float voltage = 0.0;
// 电压值结果显示
char voltString[50] = {0};
/* USER CODE END PV */
在while循环里
while (1)
{
// 启动ADC转换
HAL_ADC_Start(&hadc1);
// 等待转换完成,第二个参数表示超时时间,单位ms
HAL_ADC_PollForConversion(&hadc1, 100);
// 为换取ADC状态
adc_value = HAL_ADC_GetValue(&hadc1);
// 采取的右对齐除以2的12次方,参考电压为3.3V
voltage = (float)adc_value / 4096 * 3.3;
sprintf(voltString, "²É¼¯µ½µÄµçѹֵΪ: %.2f V", voltage);
printf("%s\r\n", voltString);
HAL_Delay(1000);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
在USART.c添加
#include "usart.h"
int fputc(int ch, FILE *f)
{
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
在USART.h添加
#include "main.h"
#include <stdio.h>
来源:oschina
链接:https://my.oschina.net/u/4415923/blog/3336804