STM32教程:ADC原理及程序(基于STM32F103C8T6最小系統板標準庫開發)*詳細教程*

前言:

本文章介紹了STM32微控制器的ADC外設,介紹了ADC的底層原理以及基本結構,介紹了ADC有關的標準庫函數,以及如何編寫代碼實現ADC對電位器電壓的讀取。


可以根據基本結構圖來編寫代碼

大體流程:

1、開啟RCC時鐘(包括ADC和GPIO的時鐘,另外ADCCLK的分頻器,也需要配置)

2、配置GPIO(把需要用的GPIO配置成模擬輸入模式)

3、配置多路開關(把左邊的通道接入到右邊的規則組列表里)

4、配置ADC轉換器(用庫函數結構體)

5、如果需要模擬看門狗和中斷,也可以配置

6、開關控制,調用ADC_Cmd函數,開啟ADC(如果需要,還可以開啟校準)


ADC相關庫函數介紹

1)ADCCLK的配置庫函數,在rcc.h

這個函數是用來配置ADCCLK分頻器的(它可以對APB2的72MHz時鐘選擇2、4、6、8分頻,輸入到ADCCLK)

void RCC_ADCCLKConfig(uint32_t RCC_PCLK2);

2)ADC的配置庫函數,在adc.h

恢復出廠配置、初始化、結構體初始化

void ADC_DeInit(ADC_TypeDef* ADCx);
void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct);
void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct);

用于給ADC上電

void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState);

開啟DMA輸出信號(如果使用DMA轉運數據,就得調用這個函數)

void ADC_DMACmd(ADC_TypeDef* ADCx, FunctionalState NewState);

中斷輸出控制

void ADC_ITConfig(ADC_TypeDef* ADCx, uint16_t ADC_IT, FunctionalState NewState);

用于控制校準的函數:復位校準、獲取復位校準狀態、開始校準,獲取開始校準狀態(在ADC初始化之后,可以依次調用)

void ADC_ResetCalibration(ADC_TypeDef* ADCx);
FlagStatus ADC_GetResetCalibrationStatus(ADC_TypeDef* ADCx);
void ADC_StartCalibration(ADC_TypeDef* ADCx);
FlagStatus ADC_GetCalibrationStatus(ADC_TypeDef* ADCx);

ADC軟件開始轉換控制,這個就是用于軟件觸發的函數了,調用一下,就可以軟件觸發轉化了

void ADC_SoftwareStartCon

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/80258.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/80258.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/80258.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2025年APP安全攻防指南:抵御DDoS與CC攻擊的實戰策略

2025年,隨著AI技術與物聯網設備的深度滲透,DDoS與CC攻擊的復雜性和破壞性顯著升級。攻擊者通過偽造用戶行為、劫持智能設備、利用協議漏洞等手段,對APP發起精準打擊,導致服務癱瘓、用戶流失甚至數據泄露。面對這一挑戰&#xff0c…

STM32的定時器

定時器的介紹 介紹:STM32F103C8T6微控制器內部集成了多種類型的定時器,這些定時器在嵌入式系統中扮演著重要角色,用于計時、延時、事件觸發以及PWM波形生成、脈沖捕獲等應用。 *幾種定時器(STM32F103系列)&#xff1…

算法中的數學:約數

1.求一個整數的所有約數 對于一個整數x,他的其中一個約數若為i,那么x/i也是x的一個約數。而其中一個約數的大小一定小于等于根號x(完全平方數則兩個約數都為根號x),所以我們只需要遍歷到根號x,然后計算出另…

不同OS版本中的同一yum源yum list差異排查思路

問題描述: qemu-guest-agent二進制rpm包的yum倉庫源和yum源倉庫配置文件path_to_yum_conf, 通過yum list --available -c path_to_yum_conf 查詢時,不同的OS版本出現了不同的結果 anolis-8無法識別 centos8可以識別 說明: 1 測試…

如何使用極狐GitLab 軟件包倉庫功能托管 helm chart?

極狐GitLab 是 GitLab 在中國的發行版,關于中文參考文檔和資料有: 極狐GitLab 中文文檔極狐GitLab 中文論壇極狐GitLab 官網 軟件包庫中的 Helm charts (BASIC ALL) WARNING:Helm chart 庫正在開發中,由于功能有限,尚未準備好用…

【PostgreSQL數據分析實戰:從數據清洗到可視化全流程】3.1 數據質量評估指標(完整性/一致性/準確性)

👉 點擊關注不迷路 👉 點擊關注不迷路 👉 點擊關注不迷路 文章大綱 數據質量評估核心指標:完整性、一致性、準確性實戰解析3.1 數據質量評估指標體系3.1.1 完整性:數據是否存在缺失1.1.1 核心定義與業務影響1.1.2 檢測…

詳解 FFMPEG 交叉編譯 `FLAGS` 和 `INCLUDES` 的作用

FLAGS 和 INCLUDES這兩行是 Android NDK 編譯時的編譯器選項,用于控制代碼生成、優化、調試、安全性和頭文件搜索路徑。下面逐項詳解: 1. FLAGS 詳解(編譯器選項) FLAGS 定義了傳遞給 C/C 編譯器(如 clang 或 gcc&…

【RK3588嵌入式圖形編程】-Cairo-Cairo圖形庫支持后端

Cairo圖形庫支持后端 文章目錄 Cairo圖形庫支持后端1、PNG圖像后端2、PDF文件后端3、SVG文件后端4、GTK窗口支持Cairo庫支持多種后端。在本文中,我們使用Cairo創建PNG圖像、PDF文件、SVG文件,并在GTK窗口上繪制。 1、PNG圖像后端 在第一個示例中,我們創建一個 PNG 圖像。 …

【常用算法:排序篇】2.快速排序的算法精要

快速排序是算法領域的"九陽神功",掌握其精髓能讓你在算法修煉之路上突破瓶頸。 1. 快速排序的核心思想 快速排序(Quicksort)是一種基于分治思想的高效排序算法,核心步驟為: 選擇基準值(Pivot&…

在現代Web應用中集成 PDF.js (pdfjs-dist 5.2 ESM): 通過 jsdelivr 實現動態加載與批注功能的思考

PDF 文檔在現代 Web 應用中越來越常見,無論是作為文檔預覽、報告展示還是在線編輯的載體。Mozilla 的 PDF.js 是一個功能強大的 JavaScript 庫,它使得在瀏覽器端渲染和顯示 PDF 文件成為可能,無需依賴原生插件。 本文將深入探討如何在你的項…

基于FPGA控制ADC0832雙通道采樣+電壓電流采樣+LCD屏幕顯示

基于FPGA控制ADC0832雙通道采樣電壓電流采樣LCD屏幕顯示 前言一、芯片手冊閱讀1.SPI通信時序 二、仿真分析三、代碼分析總結視頻演示 前言 定制 要求使用ADC0832芯片進行ADC采樣。其中電壓采樣以及電流采樣是固定電路,是硬件設計,跟軟件沒沒關系。本質上…

生產部署方案pm2配合python3腳本

前言 使用python3來處理redis 消息隊列,記錄下生產部署方案 「生產部署方案」: 多進程(動態擴容)無限自愈日志自動壓縮系統級守護可多隊列多worker 終極穩健版:PM2 Logrotate 自動擴容 守護鏈 適合&#xff1a…

Python全流程開發實戰:基于IMAP協議安全下載個人Gmail郵箱內所有PDF附件

文章目錄 一、需求分析與安全前置:為什么需要專用工具?1.1 痛點場景1.2 技術方案選擇 二、準備工作:Gmail賬號安全配置與環境搭建2.1 開啟兩步驗證(必做!)2.2 創建應用專用密碼(替代普通密碼&am…

巧用python之--模仿PLC(PLC模擬器)

工作中用到了VM(VisionMaster4.3)有時候需要和PLC打交道,但是PLC畢竟是別人的,不方便修改別人的程序,這時候需要一個靈活的PLC模擬器是多么好呀! 先說背景: PLC型號 匯川Easy521: Modbus TCP 192.168.1.10:502 在匯川Easy521中Modbus保持寄存器D寄存器 ,在modbus協議中 0-4區…

docker構建鏡像并上傳dockerhub

docker構建鏡像并上傳dockerhub 前提條件:需要連接梯子 將梯子配置到虛擬機中(確保主機能夠連接 hub.docker.com) 使用ipconfig 查詢主機的 ip4地址虛擬機的連接模式改成橋接模式(復制主機的地址網絡)將ip4配置到虛擬…

python實現的音樂播放器

python實現的音樂播放器 音樂播放器,原來寫過一個簡陋的例子,可見 https://blog.csdn.net/cnds123/article/details/137874107 那個不能拖動播放進度條上的滑塊到新的位置播放。下面介紹的可以拖動播放進度條上的滑塊到新的位置播放。 簡單實用的音樂播放器 這個簡單實用的…

[網安工具] 端口信息收集工具 —— 御劍高速 TCP 全端口掃描工具 · 使用手冊

🌟想了解其它網安工具?看看這個:[網安工具] 網絡安全工具管理 —— 工具倉庫 管理手冊 https://github.com/NepoloHebo/Yujian-high-speed-TCP-full-port-scannerhttps://github.com/NepoloHebo/Yujian-high-speed-TCP-full-port-scanner 0…

數字孿生賦能智慧城市:從概念到落地的深度實踐

在城市規模與復雜度持續攀升的當下,傳統管理模式已難以滿足現代城市精細化治理需求。數字孿生技術憑借構建虛擬城市鏡像、實現實時數據交互與智能決策的特性,成為智慧城市建設的核心引擎。本文將通過多個典型案例,深度解析數字孿生技術如何重…

DeFi開發系統軟件開發:技術架構與生態重構

DeFi開發系統軟件開發:技術架構與生態重構 ——2025年去中心化金融開發的范式革新與實踐指南 一、技術架構演進:從單一鏈到多鏈混合引擎 現代DeFi系統開發已從單一公鏈架構轉向“跨鏈互操作混合模式”,結合中心化效率與去中心化安全雙重優勢…

相同IP和端口的服務器ssh連接時出現異常

起因 把服務器上的一個虛擬機搞壞了,所以刪除重新創建了一個,端口號和IP與之前的虛擬機相同。 ssh usernameIP -p port 時報錯 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone…