基於stm32cubemx和keil的stm32(以stm32F407ZGTx為例)微控制器的開發----ADC獲取模擬量資訊
阿新 • • 發佈:2020-12-23
技術標籤: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);
}
總結
本人也是初學微控制器,菜鳥一枚,寫此部落格僅對當前學習的總結,寫的不好的地方歡迎大神指導,此程式碼僅供初學者參考,不喜勿噴