設計對電池電壓進行檢測的應用程序
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>