1. 程式人生 > 其它 >基於stm32cubemx和keil的stm32(以stm32F407ZGTx為例)微控制器的開發----ADC獲取模擬量資訊

基於stm32cubemx和keil的stm32(以stm32F407ZGTx為例)微控制器的開發----ADC獲取模擬量資訊

技術標籤:c語言stm32cubemxkeil微控制器stm32c語言物聯網嵌入式

文章目錄

前言

ADC即模bai擬數字轉換器(英語du:Analog-to-digital converter)是用於將模擬形zhi式dao的連續訊號轉換為zhuan數字形式的離散訊號的一類裝置。shu一個模擬數字轉換器可以提供訊號用於測量。與之相對的裝置成為數字模擬轉換器。

ADC的作用是將連續變化的模擬訊號轉換為離散的數字訊號。真實世界的模擬訊號,例如溫度、壓力、聲音或者影象等,需要轉換成更容易儲存、處理和發射的數字形式。

一、實驗內容

使用一個ADC讀取電源的電壓值,並輸出至串列埠

二、實驗步驟

1.在stm32cubemx配置ADC通道

在這裡插入圖片描述
設定串列埠5
在這裡插入圖片描述

2.生成程式碼開啟工程,並除錯JLink

新增標頭檔案
在這裡插入圖片描述
在主函式外定義一個數組和書寫讀取函式(因為要用到printf函式)
在這裡插入圖片描述
在while迴圈裡書寫等待回撥函式

在這裡插入圖片描述
主函式外開啟通道
在這裡插入圖片描述

uint16_t ADC_Value;
int fputc(int ch,FILE *f)
 { 
	 uint32_t temp = ch; 
 HAL_UART_Transmit(&huart5,(uint8_t *)&temp,1,1000);
	 
 return
ch; } HAL_ADC_Start(&hadc1); HAL_ADC_PollForConversion(&hadc1, 50); if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC)) { ADC_Value = HAL_ADC_GetValue(&hadc1); printf("PA5 True Voltage value : %.4f \r\n",ADC_Value*3.3f/4096); HAL_Delay(500); }

總結

本人也是初學微控制器,菜鳥一枚,寫此部落格僅對當前學習的總結,寫的不好的地方歡迎大神指導,此程式碼僅供初學者參考,不喜勿噴