嵌入式鐵頭山羊stm32-ADC實現軟件觸發的常規序列的單通道轉換-Day25

目錄

一、實驗目的

二、電路連接

三、實驗執行(五步)

1.初始化ADC的IO引腳

2.配置ADC的時鐘,注意要小于14MHz

3.根據ADC的編程接口? 實現初始化ADC的基本參數

4.配置常規序列并閉合觸發輸入開關

5.閉合總開關、啟動并讀取轉換結果

四、代碼


一、實驗目的

使用ADC實現:根據光敏傳感器的光照強弱去得到不同的輸入電壓對應的量化結果碼(使用軟件觸發常規序列的執行),既而根據得到的量化值*分辨率得到不同的電壓 然后去實現板載燈的亮滅(因為日光燈照度一般10lux,其對應的AO輸出電壓為1.5V,所以以1.5V為邊界實現板載燈的亮滅)。

?

二、電路連接

三、實驗執行(五步)

ADC的執行(五步):初始化ADCIO、配置時鐘、ADC_Init、配置常規序列/注入序列、閉合觸發輸入開關和總開關

1.初始化ADC的IO引腳

2.配置ADC的時鐘,注意要小于14MHz


3.根據ADC的編程接口? 實現初始化ADC的基本參數

其中,值得注意的是:EOC和JEOC標志位,EOC是end of convert,另一個是Inject開頭的


常規序列的第一個是配置常規序列的內容,即配置哪個通道,采樣時間多少

連續模式:一旦啟動 ADC,它會 不停地對同一個通道采樣和轉換,轉換完一輪馬上開始下一輪,像水龍頭開著一樣,結果源源不斷。----針對一個通道


對齊方式:一般選擇右對齊,方便計算


外部觸發這里選擇軟件觸發


雙ADC表示是否使用兩個ADC來執行操作


通道數:表示你要使用幾個通道,這里是只使用1個


掃描模式:如果你配置了 多個通道,ADC 會按照你設定的順序 一個接一個地采樣、轉換
例如:先測通道 0,再測通道 1,再測通道 2……直到結束一輪。------針對多個通道

4.配置常規序列并閉合觸發輸入開關

首先配置序列計劃,參數依次是ADC名稱,選擇第幾個通道,在序列計劃在排第幾,采樣時間(注意這個采用時間 給的是默認是一些固定的時間參數,這里選擇與光敏傳感器(10.24)最接近的13cycle)


之后閉合觸發輸入的開關? 以及閉合ADC總開關


5.閉合總開關、啟動并讀取轉換結果

?先清楚標志位


發送軟件觸發的輸入信號


當標志位從0-1表示常規序列完成了,注意不是一次轉換完成,而是一次常規序列都完成了?


讀取這個值,并把這個值轉為近似的電壓,做后續操作

四、代碼

#include "stm32f10x.h"
#include "Delay.h"
#include "usart.h"
void App_GPIO_Init(void);
void App_ADC_Init(void);int main(void)
{//使用ADC實現軟件觸發的單通道轉換//ADC初始化 //其中注意輸入電壓的內阻已經得到,并且因此得到的采樣時間是10.24cycleApp_GPIO_Init();App_ADC_Init();while(1){//先清零EOC標志位ADC_ClearFlag(ADC1,ADC_FLAG_EOC);while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)==RESET);uint16_t res=ADC_GetConversionValue(ADC1);		float volt=res*(3.3f/4095);if(volt>1.5){GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_RESET);}else{GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_SET);}}
}
void App_GPIO_Init(){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitTypeDef GPIO_InitStruct={0};GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_OD;GPIO_InitStruct.GPIO_Pin=GPIO_Pin_13;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_2MHz;GPIO_Init(GPIOA,&GPIO_InitStruct);}
void App_ADC_Init(){//首先就是初始化ADC的IORCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitTypeDef  GPIO_InitStruct={0};GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_2MHz;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AIN;GPIO_Init(GPIOA,&GPIO_InitStruct);//初始化后開啟時鐘RCC_ADCCLKConfig(RCC_PCLK2_Div6);RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);//初始化ADCADC_InitTypeDef ADC_InitStruct={0};ADC_InitStruct.ADC_ContinuousConvMode=DISABLE;ADC_InitStruct.ADC_DataAlign=ADC_DataAlign_Right;ADC_InitStruct.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;ADC_InitStruct.ADC_Mode=ADC_Mode_Independent;ADC_InitStruct.ADC_NbrOfChannel=1;ADC_InitStruct.ADC_ScanConvMode=DISABLE;ADC_Init(ADC1,&ADC_InitStruct);//配置常規序列ADC_RegularChannelConfig(ADC1,0,1,ADC_SampleTime_13Cycles5);ADC_ExternalTrigConvCmd(ADC1,ENABLE);//開啟總開關ADC_Cmd(ADC1,ENABLE);}

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

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

相關文章

多模態模型出現“幻覺”,描述了表格中不存在的內容,如何修正?

在日常工作中,多模態模型的 “幻覺” 問題已成為影響效率的關鍵痛點 —— 當我們需要模型基于文檔生成建議性內容(如行業報告分析、論文數據解讀等)時,模型常因無法準確理解文檔信息,輸出包含 “虛構內容” 的結果&…

Java AI 智能問數:Function調用版如何重塑企業數據決策

Java AI 智能問數:Function調用版如何重塑企業數據決策 在數字化轉型浪潮中,企業一把手常面臨數據查詢的痛點:分析師需編寫復雜SQL,業務人員依賴IT支持,決策鏈條冗長。傳統方法效率低下,而自然語言處理&…

AI-調查研究-74-具身智能 機器人學習新突破:元學習與仿真到現實遷移的挑戰與機遇

點一下關注吧!!!非常感謝!!持續更新!!! 🚀 AI篇持續更新中!(長期更新) AI煉丹日志-31- 千呼萬喚始出來 GPT-5 發布!“快的…

勞務員的就業前景如何?

勞務員的就業前景整體較為樂觀,受到行業需求、政策支持等因素的積極影響,同時也面臨著一些挑戰。以下是具體分析:1.就業優勢行業需求穩定:建筑行業作為國民經濟的支柱產業,持續發展使得對勞務員的需求較為穩定。無論是…

libvirt 新手指南:從零開始掌握虛擬化管理

引言 在云計算、大數據和邊緣計算的時代,虛擬化技術已成為 IT 基礎設施的核心支柱。它允許我們在單一物理服務器上運行多個虛擬機(Virtual Machine,簡稱 VM),從而實現資源的高效利用、快速部署和靈活擴展。對于新手來說…

OpenLayers數據源集成 -- 章節三:矢量要素圖層詳解

前言在前面的文章中,我們學習了OpenLayers的瓦片圖層(TileLayer)技術。本文將深入探討OpenLayers中的矢量要素圖層(VectorFeatureLayer)功能,這是WebGIS開發中處理矢量數據、實現交互式地圖的核心技術。矢量…

從“能說話”到“會做事”:AI Agent如何重構日常工作流?

從“能說話”到“會做事”:AI Agent如何重構日常工作流?在人工智能飛速發展的當下,AI已從最初簡單的語音交互、信息檢索進化到了具備自主決策與行動能力的新階段,其中AI Agent的出現堪稱關鍵轉折點。從只能機械“說話”回答問題&a…

隨身wifi到底有沒有用?

不用繞彎子,直接說清隨身WiFi怎么回事,對比完家用WiFi和手機熱點,再避坑~一、先明白:隨身WiFi到底是啥? 1、簡單講就是「能揣兜里的WiFi發射器」——要么插張物聯卡,要么內置流量,能…

MySQL問題8

MySQL深度分頁優化思路 常見的3種優化思路如下: 1. 子查詢優化方式 示例改寫前: SELECT * FROM words WHERE name oee ORDER BY id LIMIT 99999990, 10;這個寫法會導致 MySQL 掃描并丟棄前面 99999990 行,效率極低。 示例改寫后&#xff…

洛谷 P1249 最大乘積-普及/提高-

P1249 最大乘積 題目描述 一個正整數一般可以分為幾個互不相同的自然數的和,如 312312312,413413413,514235142351423,615246152461524。 現在你的任務是將指定的正整數 nnn 分解成若干個互不相同的自然數(也可以不分解…

大學地理信息科學該如何學習才能好就業

一、明確專業特點與就業方向地理信息科學是一門交叉性強、實踐性強的學科,融合了地理學、計算機科學、測繪、遙感等多個領域,廣泛應用于自然資源管理、城市規劃、交通、環境、農業、水利、智慧城市等行業。主要就業方向包括:政府部門/事業單位…

【git】Git 大文件推送失敗問題及解決方案

Git 大文件推送失敗問題及解決方案 在日常開發中,我們經常會遇到這樣的問題: Remote: File [xxx.exe] size 188.156MB, exceeds quota 100MB Remote: Please remove the file[s] from history and try again這是因為 Gitee/GitHub 等平臺對單個文件大小有…

國產銀河麒麟三維數字沙盤大數據可視化研訓推演模擬仿真地理信息系統

國產銀河麒麟三維數字沙盤大數據可視化研訓推演模擬仿真地理信息系統獨立自主知識產權和原創源代碼級地理信息系統平臺,核心引擎與算法實現全棧國產化,提供從數據采集、處理到可視化分析的全鏈條自主可控解決方案, 1.2支持國產操作系統&…

GPT Server 文檔

目錄配置文件的詳細說明(后續持續完善)openai_api_server配置控制器(controller)配置模型(worker)配置模型配置大語言模型 示例:QwenEmbedding模型 示例:Conan-embedding-v1TTS文本轉語音模型 示例: Spark-TTST2I 文生圖模型示例:…

中國移動云電腦一體機-創維LB2004_瑞芯微RK3566_2G+32G_開啟ADB ROOT安卓固件-方法3

中國移動云電腦一體機-創維LB2004_瑞芯微RK3566_2G32G_開啟ADB ROOT安卓固件-方法3 聲明,這個安卓固件root一旦恢復出廠設置,會變回原樣,雖然root,但也無法自行操作。 建議按照:中國移動云電腦一體機-創維LB2004_瑞芯微…

設計模式(策略,觀察者,單例,工廠方法)

文章目錄1. 設計模式核心概念與C語言實現基礎2. 常用設計模式詳解模式一:策略模式(Strategy Pattern)模式二:觀察者模式(Observer Pattern)模式三:單例模式(Singleton Pattern&#…

terraform入門

一、概念 1、Terraform 的“基礎設施即代碼”是什么 基礎設施即代碼 (IaC) 工具允許您使用配置文件而非圖形用戶界面來管理基礎設施。通過定義可版本控制、可重用和可共享的資源配置,IaC 允許您以安全、一致且可重復的方式構建、更改和管理您的基礎設施。 Terraform…

ARM 體系結構與存儲器

一、RAM 分類SRAM (Static RAM)用 觸發器/晶體管 存儲 0/1。特點:速度快、功耗低(靜態保持),但成本高、容量小。應用:片上緩存、寄存器文件、單片機內存。DRAM (Dynamic RAM)用 電容充放電 存儲 0/1。特點:…

Jenkins運維之路(初識流水線)

1.初次使用流水線前面我們用自由風格的流水線進行了項目部署,但是自由風格的流水線只能應付一些簡單且項目規模不是很大的部署。為了讓流水線能夠靈活、通用、邏輯清晰且更加容易維護,現在一般企業都是采取使用了Pipeline的方式來對流水線進行構建&#…

【智能協同云圖庫】基于統一接口架構構建多維度分析功能、結合 ECharts 可視化與權限校驗實現用戶 / 管理員圖庫統計、通過 SQL 優化與流式處理提升數據

摘要:本節圍繞提升空間圖庫管理分析能力,先分用戶與管理員兩類梳理資源使用、分類、標簽等 6 大分析需求,再設計統一實現流程與接口方案,最后通過分層開發完成各需求后端功能,覆蓋權限校驗、數據處理與接口編寫。 本節…