首页
/
每日頭條
/
生活
/
stm32f103電源電壓範圍
stm32f103電源電壓範圍
更新时间:2026-01-07 12:43:08

幾乎每個嵌入式應用程序中都使用的一個常見功能是 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
推荐阅读
黃枕套發黃怎麼清洗
黃枕套發黃怎麼清洗
我們每天睡覺的時候都會用到枕頭。但是如果枕套清洗不幹淨的話,就會對我們的皮膚造成很大的傷害。那今天起來就給大家如何徹底地清洗枕套,趕緊來看吧。首先大家可以看一下,我們的枕頭上面有很多的黃色,這個時候我們準備好一盆清水。注意我們清洗枕套,最開...
2026-01-07
把魚泡在可樂裡過一個月
把魚泡在可樂裡過一個月
近日,網上一段“可樂泡魚”的視頻流傳甚廣一位外國人把一整條魚放入玻璃罐後把可樂倒入罐中用保鮮膜密封好後蓋上蓋子放置30天後開蓋倒出發現魚消失了,連骨頭都不剩這是真的嗎?可樂有那麼大的威力嗎?針對各種傳言及困惑,近日,華商報《好奇心》欄目聯合...
2026-01-07
長沙國際航班最新消息
長沙國際航班最新消息
湖南日報9月9日訊(全媒體記者彭可心通訊員曹弋遠黨侃劉玉懷)中秋佳節,想感受一次“飛”比尋常的空中賞月麼?南航湖南分公司、湖南航空彙總中秋期間長沙離港适宜賞月的南航航班信息,包括最佳賞月時間、最佳賞月航班和最佳賞月航班位置等,供長沙出港的旅...
2026-01-07
老年人便秘需要注意什麼
老年人便秘需要注意什麼
什麼是無力性便秘:大便無力又稱無力性便秘,是由于腸蠕動不力或者排便反射減弱,長期依賴傾瀉劑和灌腸,就會使直腸對糞便存在的敏感性迅速降低,從而形成的便秘叫做無力性便秘。便秘患者的營養治療,要根據不同的便秘類型,給予适當的飲食。一般老年人因攝入...
2026-01-07
不做大哥很多年了
不做大哥很多年了
歌詞:我不做大哥好多年我不愛冰冷的床沿不要逼我想念不要逼我流淚我會翻臉我不做大哥好多年我隻想好好愛一回時光不能倒退人生不能後悔愛你在明天不怕工作汗流浃背不怕生活嘗盡苦水回頭隻有一回而思念隻有你的笑顔放了真心在我胸前盼望一天你會看見我是真的改...
2026-01-07
Copyright 2023-2026 - www.tftnews.com All Rights Reserved