STM32H743單片機實現ADC+DMA多通道檢測+事件組

在上個文章基礎上改用事件組進行處理,以便實時任務。

stm32cubeMX自動生成代碼

osEventFlagsId_t adctestEventHandle;
const osEventFlagsAttr_t adctestEvent_attributes = {.name = "adctestEvent"
};adctestEventHandle = osEventFlagsNew(&adctestEvent_attributes);

編寫代碼DMA回調函數觸發事件

#define ADC2_CONVERSION_COMPLETE_BIT	0x01
#define ADC3_CONVERSION_COMPLETE_BIT	0x02void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc) {if (hadc->Instance == ADC2)  // 確認是ADC2的轉換完成{osEventFlagsSet(adctestEventHandle, ADC2_CONVERSION_COMPLETE_BIT);HAL_ADC_Stop_DMA(&hadc2);} else if (hadc->Instance == ADC3)  // 確認是ADC3的轉換完成{osEventFlagsSet(adctestEventHandle, ADC3_CONVERSION_COMPLETE_BIT);HAL_ADC_Stop_DMA(&hadc3);}
}

事件觸發邏輯處理

void AdcTask(void *argument)
{Start_ADC2_DMA();Start_ADC3_DMA();int i = 0;uint32_t ret = 0;float voltage;for (;;) {ret = osEventFlagsWait(adctestEventHandle, ADC2_CONVERSION_COMPLETE_BIT | ADC3_CONVERSION_COMPLETE_BIT, osFlagsWaitAny, osWaitForever);if ((ret & ADC2_CONVERSION_COMPLETE_BIT) != 0){/* 打印ADC2數據 */for (i = 0; i < hadc2.Init.NbrOfConversion; i++) {voltage = adc2_values[i] * VEF / VEFVALUE;printf("ADC2[%d] = %d.%dV\r\n", i, (uint32_t) voltage,(uint32_t) (voltage * 100) % 100);}printf("\n");}if ((ret & ADC3_CONVERSION_COMPLETE_BIT) != 0){/* 打印ADC3數據 */for (i = 0; i <  hadc3.Init.NbrOfConversion; i++) {voltage = adc3_values[i] * VEF / VEFVALUE;printf("ADC3[%d] = %d.%dV\r\n", i, (uint32_t) voltage,(uint32_t) (voltage * 100) % 100);}printf("\n\n");}osDelay(1);}
}

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

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

相關文章

AI Agent開發第57課-AI用在銷售歸因分析場景中-用隨機森林從0構建自己的“小模型”

開篇 在前一篇《機器學習的基礎-線性回歸如何應用在商業場景中》里,我們說到了如果我們只是簡單的分析和預測一下投入廣告費用和銷售額增長是否存在必然關系,我們用了線性回歸法得到了分析,得到的分析結果極其精準,以及提到了:如果當銷售因素是非線性的并且有著額外一些如…

Linux運維——Vim技巧三

Vim技巧 一、按 按模 模式 式匹 匹配 配及 及按 按原 原義 義匹 匹配1.1、調整查找模式的大小寫敏感性1.2、按正則表達式查找時&#xff0c;使用 \v 模式開關1.3、按原義查找文本時&#xff0c;使用 \V 原義開關1.4、使用圓括號捕獲子匹配1.5、界定單詞的邊界1.6、界定匹配的邊…

NLTK庫(1): 數據集-語料庫(Corpus)

1.簡介 NLTK &#xff08;Natural Language Toolkit&#xff09; 是自然語言處理&#xff08;NLP&#xff09;任務的 Python 庫&#xff0c;內置大量NLP數據集與計算包。 NLP數據集也叫語料庫 (Corpus), 若無特殊格式或標記&#xff0c;數據集通常來自txt等文本文件。 本教程…

spring詳解-循環依賴的解決

Spring循環依賴 重點提示&#xff1a; 本文都快寫完了&#xff0c;發現“丈夫” 的英文是husband… 在“②有AOP循環依賴” 改過來了&#xff0c;前面用到的位置太多了就沒改。我是說怎么idea的hansband英文下面怎么有波浪線。各位能夠理解意思就行&#xff0c;英文拼寫不要過…

隨機快速排序算法

一、隨機化原理 經典快速排序 選取固定的“樞軸”&#xff08;通常取第一個或最后一個元素&#xff09;&#xff0c;在最壞情況下&#xff08;如已經有序&#xff09;會退化為 。 隨機快速排序 在每次分區前隨機地從當前區間 [p..r] 中等概率選取一個樞軸&#xff0c;將它與末…

數據可視化與分析

數據可視化的目的是為了數據分析&#xff0c;而非僅僅是數據的圖形化展示。 項目介紹 項目案例為電商雙11美妝數據分析&#xff0c;分析品牌銷售量、性價比等。 數據集包括更新日期、ID、title、品牌名、克數容量、價格、銷售數量、評論數量、店名等信息。 1、數據初步了解…

美團Java高級配送員面經分享|玩梗版

美團Java高級配送員面經分享&#xff01;純玩梗&#xff01;

在windows中卸載mysql

一、停止服務 winR快捷鍵 -->> 輸入services.msc -->> 進入服務窗口關閉Mysql服務 二、卸載程序&#xff08;可選&#xff09; 如果是通過解壓壓縮包安裝的則跳過這一步&#xff0c;如果是使用.msi文件驅動安裝則需要卸載 控制面板 -->> 程序和功能 -->…

https://juejin.cn/editor/drafts/7262346366541070395

.Net Core從零學習搭建權限管理系統教程 推薦一組WPF自定義控件開源項目。 項目簡介 這是基于WPF開發的&#xff0c;為開發人員提供了一組方便使用自定義組件&#xff0c;并提供了各種常用的示例。 包含組件&#xff1a;數據表格、屬性列表、樹形列表、選色器、單選框列表、…

三、網絡管理

網絡管理 一、IP地址 原理&#xff1a; 定義與作用&#xff1a;IP 地址是互聯網協議地址&#xff0c;用于在網絡中唯一標識一臺設備。它如同現實生活中的家庭住址&#xff0c;確保數據能準確無誤地從源設備傳輸到目標設備。地址分類&#xff1a;IP 地址分為 IPv4 和 IPv6 兩種…

Auto.js 腳本:清理手機數據但保留賬號

Auto.js 腳本&#xff1a;清理手機數據但保留賬號 以下是一個使用 Auto.js 實現的腳本&#xff0c;它可以幫你清理手機數據&#xff08;類似恢復出廠設置&#xff09;&#xff0c;同時盡可能保留已登錄的賬號狀態。請注意&#xff0c;這個腳本不能完全等同于真正的恢復出廠設置…

LeetCode 熱題 100 279. 完全平方數

LeetCode 熱題 100 | 279. 完全平方數 大家好&#xff0c;今天我們來解決一道經典的動態規劃問題——完全平方數。這道題在 LeetCode 上被標記為中等難度&#xff0c;要求找到和為給定整數 n 的完全平方數的最少數量。 問題描述 給定一個整數 n&#xff0c;返回和為 n 的完全…

【coze】手冊小助手(提示詞、知識庫、交互、發布)

【coze】手冊小助手&#xff08;提示詞、知識庫、交互、發布&#xff09; 1、創建智能體2、添加提示詞3、創建知識庫4、測試智能體5、添加交互功能6、發布智能體 1、創建智能體 2、添加提示詞 # 角色 你是幫助用戶搜索手冊資料的AI助手 ## 工作流程 ### 步驟一:查詢知識庫 1.每…

一個基于Asp.Net Core + Angular + Bootstrap開源CMS系統

從零學習構建一個完整的系統 推薦一個功能強大、易于擴展、安全可靠的開源內容管理系統&#xff0c;適用于各種類型和規模的網站。 項目簡介 MixCoreCMS是一個基于.NET Core框架的開源內容管理系統&#xff08;CMS&#xff09;&#xff0c;提供了豐富的的基礎功能和插件&…

【Python】常用命令提示符

Python常用的命令提示符 一、Python環境基礎命令【Windows】 于Windows環境下&#xff0c;針對Python&#xff0c;在CMD&#xff08;命令提示符&#xff09;常用的命令以及具體用法&#xff0c;怎么用&#xff1b; ??主要包含&#xff1a;運行腳本、包管理、虛擬環境、調試與…

提示詞優化:檢索歷史提示確定方向→生成候選提示并控制修改幅度→基于準確率迭代優化

提示詞優化器 Unleashing the Potential of Large Language Models as Prompt Optimizers: Analogical Analysis with Gradient - based Model Optimizers 《Unleashing the Potential of Large Language Models as Prompt Optimizers: Analogical Analysis with Gradient - …

如何設計一個網頁計算器?—— 從需求分析到測試的全流程

1. 需求分析與功能設計 核心功能 基礎運算:+ - * / 高級運算:% (取模)、^ (冪運算)、√ (開平方) 記憶功能:M+ (累加)、M- (累減)、MR (讀取)、MC (清除) 交互優化: 支持鍵盤輸入(0-9、Enter、Backspace) 實時計算(類似 Google 計算器,輸入 2+3= 自動顯示 5) 錯誤處理…

基于RT-Thread的STM32F4開發第二講第一篇——ADC

文章目錄 前言一、RT-Thread工程創建二、ADC工程創建三、ADC功能實現1.ADC.c2.ADC.h3.mian.c 四、效果展示和工程分享總結 前言 ADC是什么不多講了&#xff0c;前面裸機操作部分有很多講述。我要說的是RT-Thread對STM32的ADC外設的適配極其不好&#xff0c;特別是STM32G4系類&…

FoMo 數據集是一個專注于機器人在季節性積雪變化環境中的導航數據集,記錄了不同季節(無雪、淺雪、深雪)下的傳感器數據和軌跡信息。

2025-05-02&#xff0c;由加拿大拉瓦爾大學北方機器人實驗室和多倫多大學機器人研究所聯合創建的 FoMo 數據集&#xff0c;目的是研究機器人在季節性積雪變化環境中的導航能力。該數據集的意義在于填補了機器人在極端季節變化&#xff08;如積雪深度變化&#xff09;下的導航研…

vue3+ts繼續學習

我們再寫點東西&#xff0c;這里面都是vue2的語法&#xff0c;應該都能看明白&#xff01;我們寫完直接去運行一下代碼&#xff01; 發現什么都沒有發生&#xff01;為什么呢&#xff1f;因為我們在App.vue中沒有引入&#xff01;哈哈哈哈&#xff01;這樣就好了&#xff01;注…