设计对电池电压进行检测的应用程序
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>