STM32CubeMX+ADC數據采集


設計對電池電壓進行檢測的應用程序

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>

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM