首页
/
每日頭條
/
生活
/
stm32f103電源電壓範圍
stm32f103電源電壓範圍
更新时间:2025-12-25 08:32:22

幾乎每個嵌入式應用程序中都使用的一個常見功能是 ADC 模塊(模數轉換器)。這些模數轉換器可以從溫度傳感器、傾斜傳感器、電流傳感器、彎曲傳感器等模拟傳感器讀取電壓。現在,我們學習 如何使用 STM32F103C8 中的 ADC 讀取模拟電壓,我們将一個電位器連接到 STM32 Blue Pill 闆,通過改變電位器阻值為ADC提供不同的電壓,将讀取的電壓顯示在 1602 LCD 上。

STM32F103C8 中的 ADC

在 STM32F103C8有 10 個通道、12 位 ADC,輸入範圍為 0V -3.3V。它将 0 到 3.3 伏之間的輸入電壓映射為 0 到 4095 之間的整數值。

這裡的術語 10 通道意味着有 10 個 ADC 引腳可以用來測量模拟電壓。術語 12 位表示ADC 的分辨率,表示000000000000-111111111111(212即 4096)。這是我們 ADC 的采樣步數,因此我們的 ADC 值的範圍從 0 到 4095。該值将從 0 增加到4095基于每步電壓值,可通過方面方式計算

電壓 / 步數 = 參考電壓 / 4096 = (3.3/4096= 8.056mV) 每單位。

模拟信号如何轉換為數字格式

由于計算機僅存儲和處理二進制/數字值(1 和 0)。因此,模拟信号(如傳感器的伏特輸出)必須轉換為數字值以進行處理,并且轉換需要準确。當在模拟輸入端向 STM32 提供輸入模拟電壓時,模拟值被讀取并存儲在整數變量中. 使用以下方式将存儲的模拟值(0-3.3V)轉換為整數值(0-4096):

輸入電壓 = (ADC 值 / ADC 分辨率) * 參考電壓

分辨率 = 4096

參考電壓 = 3.3V

STM32F103C8T6 中的 ADC 引腳

STM32 中有 10 個ADC引腳,從 PA0 到 PB1。

stm32f103電源電壓範圍(如何在STM32F103C8中使用)1

電路圖及說明

stm32f103電源電壓範圍(如何在STM32F103C8中使用)2

LCD與STM32連接

stm32f103電源電壓範圍(如何在STM32F103C8中使用)3

1602 LCD根據上表進行連接。電路中有兩個電位器,第一個用于分壓器,用于改變電壓并為 STM32 提供模拟輸入。該電位器的左側引腳從 STM32(3.3V)獲得輸入正電壓,右側引腳接地,電位器的中心引腳連接到 STM32 的模拟輸入引腳(PA7)。另一個電位器用于改變 LCD 顯示屏的對比度。STM32 的電源由 PC的 USB 電源提供。

stm32f103電源電壓範圍(如何在STM32F103C8中使用)4

對 STM32 進行編程以讀取 ADC 值

通過 STM32 的 USB 端口将其連接到 PC 并開始使用 ARDUINO IDE 進行編程。在程序中,讀取模拟值并使用該值計算電壓,然後在 LCD 屏幕上顯示模拟值和數字值。

#include <LiquidCrystal.h> // LCD 庫 //首先 定義出 LCD 引腳。這些定義了 LCD 引腳連接到 STM32 的哪個引腳。 //你可以根據自己的要求進行修改。 const int rs = PB11, en = PB10, d4 = PB0, d5 = PB1, d6 = PC13, d7 = PC14; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); //初始化LCD const int analogip = PA7;//模拟輸入引腳 void setup() { lcd.begin(16, 2); //我們使用的是 16*2 LCD lcd.clear(); //清屏 lcd.setCursor(0, 0); //設置光标在第一行第一列 lcd.print("Hello Wrold!"); //LCD顯示這個 lcd.setCursor(0, 1); //設置光标在第二行第一列 lcd.print("STM32F103C8"); //LCD顯示這個 delay(2000);//等待兩秒 lcd.clear(); //清屏 lcd.setCursor(0, 0); //設置光标在第一行第一列 lcd.print("USING ADC IN");//打印這個 lcd.setCursor(0,1); //設置光标在第二行第一列 lcd.print("STM32F103C8");//打印這個 delay(2000); //等待兩秒 lcd.clear(); //清屏 } void loop() { int val = analogRead(PA7); // 從引腳 A7 讀取 ADC 值 float voltage = (float(val)/4096) * 3.3; //将 ADC 值轉換為電壓值 lcd.setCursor(0, 0); // 将光标設置到第 0 列第 0 行 lcd.print("ADC Val:"); lcd.print(val); //顯示ADC值 lcd.setCursor(0, 1); // 将光标設置到第 0 列第 1 行 lcd.print("Voltage:"); lcd.print(voltage);//顯示電壓 }

本文到此結束,錯誤之處歡迎指出。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
win10怎麼才能不卡
win10怎麼才能不卡
win10怎麼才能不卡?在計算機(我的電腦)上點擊鼠标右鍵,選擇屬性,進入高級系統設置,我來為大家科普一下關于win10怎麼才能不卡?以下内容希望對你有幫助!win10怎麼才能不卡在計算機(我的電腦)上點擊鼠标右鍵,選擇屬性,進入高級系統設...
2025-12-25
裨補是什麼意思
裨補是什麼意思
裨補是什麼意思?裨補,意思是增加;補益;彌補裨益,好處彌補缺點和不足,我來為大家科普一下關于裨補是什麼意思?下面希望有你要的答案,我們一起來看看吧!裨補是什麼意思裨補,意思是增加;補益;彌補。裨益,好處。彌補缺點和不足。裨補,拼音bìbǔ。...
2025-12-25
插座被黑色塑料堵住了怎麼辦
插座被黑色塑料堵住了怎麼辦
插座被黑色塑料堵住了怎麼辦?打開插座的面闆拆除插座上的線,更換新的面闆,下面我們就來說一說關于插座被黑色塑料堵住了怎麼辦?我們一起去了解并探讨一下這個問題吧!插座被黑色塑料堵住了怎麼辦打開插座的面闆。拆除插座上的線,更換新的面闆。按照以前的...
2025-12-25
不按交通信号指示通行什麼意思
不按交通信号指示通行什麼意思
不按交通信号指示通行什麼意思?“不按交通信号指示通行”意思是沒有按照交通信号燈的指示通行,通常是指闖紅燈或者沒有按照規定的車道行駛交通信号燈是交通指揮中的重要組成部分,是道路交通的基本語言,下面我們就來聊聊關于不按交通信号指示通行什麼意思?...
2025-12-25
在野外如何生火
在野外如何生火
在野外如何生火?直接生火:有火源的情況下,譬如有打火機等可以點火的東西,直接将幹樹枝樹葉等聚集起來生火就行了,我來為大家科普一下關于在野外如何生火?以下内容希望對你有幫助!在野外如何生火直接生火:有火源的情況下,譬如有打火機等可以點火的東西...
2025-12-25
Copyright 2023-2025 - www.tftnews.com All Rights Reserved