e2studio開發RA2E1(17)---- ADC掃描多通道采樣

e2studio開發RA2E1.17-- ADC掃描多通道采樣

  • 概述
  • 視頻教學
  • 樣品申請
  • 硬件準備
  • 參考程序
  • 源碼下載
  • ADC屬性配置
  • 回調函數
  • 主程序
  • 演示結果

概述

在嵌入式系統中,ADC(模數轉換器)是一個非常重要的組件,它將模擬信號轉換為數字信號。為了提高采樣效率和擴展應用,瑞薩MCU支持多通道掃描模式,允許同時采集多個模擬信號。在本文中,將在上篇文章基礎上探討如何配置ADC模塊進行多通道掃描,并采集來自不同的輸入模擬信號。

最近在瑞薩RA的課程,需要樣片的可以加qun申請:925643491。

在這里插入圖片描述

視頻教學

https://www.bilibili.com/video/BV1y7XRYeEBw/

e2studio開發RA2E1(17)----ADC掃描多通道采樣

樣品申請

https://www.wjx.top/vm/rCrkUrz.aspx

硬件準備

首先需要準備一個開發板,這里我準備的是自己繪制的開發板,需要的可以進行申請。
主控為R7FA2E1A72DFL#AA0

在這里插入圖片描述

參考程序

https://github.com/CoreMaker-lab/RA2E1

https://gitee.com/CoreMaker/RA2E1

源碼下載

ADC屬性配置

添加P101通道。

在這里插入圖片描述

● Name:g_adc0該 ADC 實例的名稱,在代碼中用于引用此 ADC 設備。
● Unit:0表示使用的是 ADC0 設備(MCU 可能有多個 ADC 單元,如 ADC0、ADC1 等)。
● Resolution:12-Bit選擇 ADC 分辨率為 12 位,即轉換后的數值范圍為 0~4095(2^12 = 4096)。
● Alignment:Right選擇數據右對齊,即 ADC 結果存儲時,低 12 位有效,高位填充 0。
● Clear after read:On每次讀取 ADC 結果后,寄存器會自動清除,防止舊數據干擾新采樣。
● Mode:Single Scan單次掃描模式,即每次觸發 ADC 轉換后,僅采樣一次選中的通道。

在這里插入圖片描述

● Normal/Group A Trigger:SoftwareADC 觸發方式為軟件觸發,即需要手動調用 API R_ADC_ScanStart() 來啟動轉換。
● Callback(回調函數):指定回調函數 adc_callback,用于 ADC 轉換完成后的事件處理。
● Scan End Interrupt Priority(掃描結束中斷優先級):Priority 2ADC 掃描結束中斷的優先級設置為 2(數值越小,優先級越高)。
● AN019 → P103 :ADC 通道 19(AN019)映射到 P103 引腳,即 ADC 采樣的模擬信號輸入在 P103 引腳。
● AN021 → P101 :ADC 通道 21(AN021)映射到 P101 引腳,即 ADC 采樣的模擬信號輸入在 P101 引腳。

在這里插入圖片描述

回調函數

實現了一個ADC回調函數,并在掃描完成時設置 scan_complete_flag 標志位為 true,以便通知主程序掃描已完成。

volatile bool scan_complete_flag = false;
void adc_callback (adc_callback_args_t * p_args)
{//宏將告知編譯器回調函數不使用參數 p_args,從而避免編譯器發出警告,FSP_PARAMETER_NOT_USED(p_args);scan_complete_flag = true;
}

主程序

通過ADC對多個通道進行采樣,并計算采樣數據的平均值與相應的電壓值,最后打印出每個通道的數字輸出和電壓值。

    while(1){uint16_t adc_data19=0;double a19;uint16_t adc_data21=0;double a21;/* Enable scan triggering from ELC events. */(void) R_ADC_ScanStart(&g_adc0_ctrl);scan_complete_flag = false;while (!scan_complete_flag){/* Wait for callback to set flag. */}err = R_ADC_Read(&g_adc0_ctrl, ADC_CHANNEL_19, &adc_data19);assert(FSP_SUCCESS == err);a19=(double)(adc_data19/4095.0)*3.3;printf("P103(AN19)=%d,voltage=%f\n",adc_data19,a19);err = R_ADC_Read(&g_adc0_ctrl, ADC_CHANNEL_21, &adc_data21);assert(FSP_SUCCESS == err);a21=(double)(adc_data21/4095.0)*3.3;printf("P101(AN19)=%d,voltage=%f\n",adc_data21,a21);R_BSP_SoftwareDelay (1000, BSP_DELAY_UNITS_MILLISECONDS);}

演示結果

給P103接入3.3V,給P101接入GND,結果如下所示。

在這里插入圖片描述

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

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

相關文章

FPGA標準庫-Open Logic

在現代技術發展的浪潮中,開源項目已經成為了推動技術創新和發展的核心力量。無論是人工智能、區塊鏈、云計算,還是傳統的嵌入式開發、操作系統,開源項目都在其中扮演著至關重要的角色。它們不僅促進了技術的快速迭代,也為全球開發…

FineReport 操作注意

1.父單元格重復的時候,如何取消合并 效果如下: 只需要在單元格中,將數據設置為【列表】即可。 2.待定

開源之夏經驗分享|Koupleless 社區黃興抗:在開源中培養工程思維

開源之夏經驗分享|Koupleless 社區黃興抗:在開源中培養工程思維 文|黃興抗 電子信息工程專業 Koupleless 社區貢獻者 就讀于南昌師范學院,電子信息工程專業的大三學生。 本文 2634 字,預計閱讀 7? 分鐘? 今天 SOFAStack 邀…

Ollama存在安全風險的情況通報及解決方案

據清華大學網絡空間測繪聯合研究中心分析,開源跨平臺大模型工具Ollama默認配置存在未授權訪問與模型竊取等安全隱患。鑒于目前DeepSeek等大模型的研究部署和應用非常廣泛,多數用戶使用Ollama私有化部署且未修改默認配置,存在數據泄露、算力盜…

線代[9]|線性代數主要內容及其發展簡史(任廣千《線性代數的幾何意義》的附錄1)

文章目錄 向量行列式矩陣線性方程組二次型 向量 向量又稱為矢量,最初應用與物理學。很多物理量如力、速度、位移以及電場強度、磁感應強度等等都是向量。大約公元前350年前,古希臘著名學者亞里士多德就知道了力可以表示成向量,兩個力的組合作…

H20半精度推理報錯:Floating point exception (core dumped)

Nvidia H20 顯卡在執行bf16,f16推理時程序異常中斷 時間是 2025年3月4日 課題組新到的8卡H20服務器在使用過程中,torch加載模型進行bf16的推理時,出現Floating point exception (core dumped)錯誤 當時一頭霧水,后來苦苦尋找&…

服務是否設置為開機自啟動

在 Linux 系統中,可以通過以下幾種方法檢查服務是否設置為開機自啟動: 方法 1:使用 systemctl 命令(適用于 systemd 系統) systemctl 是 systemd 系統的命令行工具,用于管理系統服務。以下是具體步驟&…

QT——基于 QListWidget 和 QStackedWidget 的頁面切換

Qt 練習題:基于 QListWidget 和 QStackedWidget 的頁面切換 Qt 練習題:基于 QListWidget 和 QStackedWidget 的頁面切換 題目描述: 請使用 Qt 設計一個窗口,其中包含一個 QListWidget 和一個 QStackedWidget。要求實現以下功能&a…

DeepSeek 助力 Vue3 開發:打造絲滑的表格(Table)示例2: 分頁和排序

前言:哈嘍,大家好,今天給大家分享一篇文章!并提供具體代碼幫助大家深入理解,徹底掌握!創作不易,如果能幫助到大家或者給大家一些靈感和啟發,歡迎收藏+關注哦 ?? 目錄 DeepSeek 助力 Vue3 開發:打造絲滑的表格(Table)示例2: 分頁和排序??前言??頁面效果??指令…

C語言文件操作學習筆記:從基礎到實踐

在C語言的知識體系中,文件操作是極為關鍵的一環,它賦予了程序存儲和讀取外部數據的能力,對于開發各類實用程序至關重要。近期,借助課程的學習,我對C語言文件操作進行了系統且深入的學習,下面將我的學習心得…

VLM-E2E:通過多模態駕駛員注意融合增強端到端自動駕駛

25年2月來自香港科大廣州分校、理想汽車和廈門大學的論文“VLM-E2E: Enhancing End-to-End Autonomous Driving with Multimodal Driver Attention Fusion”。 人類駕駛員能夠利用豐富的注意語義,熟練地應對復雜場景,但當前的自動駕駛系統難以復制這種能…

第十天-字符串:編程世界的文本基石

在編程的廣闊領域中,字符串是極為重要的數據類型,它就像一座橋梁,連接著人類的自然語言和計算機能夠理解與處理的數字信息。下面,讓我們深入探索字符串的世界。 一、字符串簡介 字符串是由零個或多個字符組成的有序序列&#xff…

《基于HarmonyOS NEXT API 12+,搭建新聞創作智能寫作引擎》

在信息爆炸的時代,新聞行業對于內容生產的效率和質量有著極高的要求。AI技術的發展為新聞創作帶來了新的變革契機,借助AI智能寫作助手,新聞工作者可以快速生成新聞稿件的初稿,大大提高創作效率。本文將基于HarmonyOS NEXT API 12及…

基于STM32的環境監測系統(自制藍牙APP)

目錄 項目概述 實物圖 演示視頻 概述 硬件模塊 原理圖以及PCB 0.96寸OLED屏幕(SSD1306) CubeMX配置 初始化代碼 MQ-2煙霧傳感器 CubeMX配置 初始化代碼 DHT11溫濕度模塊 驅動代碼 HC-05藍牙模塊 CubeMX配置 ?編輯 空閑中斷回調函數 有…

linux離線安裝ollama并部署deepseek-r1模型 指南

這篇文章主要分為兩部分: (1)離線環境下如何部署Ollama; (2)在離線環境下如何配置大模型,其中這一步又分為: ?1)部署完整的deepseek大模型,如:deepseek-r1:32B; ?2)部署蒸餾版模型,如&#xf…

坐標變換介紹與機器人九點標定的原理

【備注】本文的C#代碼在下面鏈接中可以下載:Opencv的C#九點標定代碼資源-CSDN文庫 https://download.csdn.net/download/qq_34047402/90452336 一、坐標變換的介紹 1.繞原點旋轉的坐標變換 一個點(x,y)繞原點旋轉u度,其旋轉后的坐標(x1,y1)如何計算? 2.繞任意點的坐標變…

大語言模型 智能助手——既能生成自然語言回復,又能在必要時調用外部工具獲取實時數據

示例代碼: import json from langgraph.graph import Graph, END,StateGraph from langchain_core.utils.function_calling import convert_to_openai_function from langchain_community.tools.openweathermap import OpenWeatherMapQueryRun from langchain_core…

FPGA學習(一)——DE2-115開發板編程入級

FPGA學習(一)——DE2-115開發板編程入級 一、實驗目的 通過 1 位全加器的詳細設計,深入掌握原理圖輸入以及 Verilog 的兩種設計方法,熟悉 Quartus II 13.0 軟件的使用流程,以及在 Intel DE2-115 開發板上的硬件測試過…

中間件專欄之MySQL篇——MySQL事務原理、鎖機制分析

MySQL的事務性也是其重要特性之一。 什么是事務:事務的本質是并發控制的單元,是用戶定義的一個操作序列。這些操作要么都做,要么都不做,是 一個不可分割的工作單位。 目的:事務的目的在于將數據庫從一種一致性狀態轉…

機器學習的三個基本要素

機器學習的基本要素包括模型、學習準則(策略)和優化算法三個部分。機器學習方法之間的不同,主要來自其模型、學習準則(策略)、優化算法的不同。 模型 機器學習首要考慮的問題是學習什么樣的模型(Model&am…