欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 722|回復: 0
收起左側(cè)

STM32L496雙通道50K ADC采樣 USB傳輸示例

[復制鏈接]
ID:277903 發(fā)表于 2026-1-23 14:20 | 顯示全部樓層 |閱讀模式
基于正點原子潘多拉STM32L496開發(fā)板的ADC DMA采集與USB CDC數(shù)據(jù)傳輸示例項目。

項目簡介
本項目實現(xiàn)了ADC單通道連續(xù)采集,通過DMA雙緩沖模式進行數(shù)據(jù)傳輸,并使用JustFloat協(xié)議通過USB CDC(虛擬串口)將采集的波形數(shù)據(jù)實時傳輸?shù)絇C端。
主要功能:
  • ADC定時器觸發(fā)采集
  • DMA雙緩沖傳輸
  • USB CDC虛擬串口數(shù)據(jù)傳輸
  • JustFloat協(xié)議數(shù)據(jù)格式
51hei1.png
51hei9.png
核心特性
  • 定時器觸發(fā): TIM1定時器觸發(fā)ADC采集,采樣率穩(wěn)定
  • DMA 雙緩沖模式: 自動循環(huán)接收數(shù)據(jù),無需 CPU 干預
  • JustFloat 協(xié)議: 標準化的float數(shù)據(jù)傳輸格式,便于PC端解析
  • USB CDC 虛擬串口: 免驅(qū)動的USB通信方式
  • 空閑中斷: 檢測一幀數(shù)據(jù)結(jié)束,實現(xiàn)可變長數(shù)據(jù)接收
  • 批量操作: 中斷中批量寫入數(shù)據(jù)到用戶隊列,主循環(huán)中批量讀取處理

硬件平臺
項目說明
開發(fā)板正點原子潘多拉 STM32L496 開發(fā)板
MCUSTM32L496VET6
主頻80MHz (PLL倍頻)

引腳定義
功能引腳備注
ADC1_IN3PC2模擬輸入通道3
ADC1_IN9PA4模擬輸入通道9
DEBUGPB11調(diào)試指示輸出(DMA緩沖區(qū)切換)
USB DMPA11USB數(shù)據(jù)負
USB DPPA12USB數(shù)據(jù)正

技術(shù)細節(jié)
ADC配置
  • 分辨率: 12位 (0-4095)
  • 參考電壓: 3.3V
  • 采樣通道: ADC1_IN3 (PC2)、ADC1_IN9 (PA4)
  • 觸發(fā)方式: TIM1_TRGO 上升沿觸發(fā)
  • 采樣時間: 2.5個ADC時鐘周期
  • DMA模式: 循環(huán)模式,雙緩沖
DMA雙緩沖機制
PixPin_2026-01-23_14-21-09.png
  • 半傳輸中斷 (HT): 前半緩沖區(qū)填滿,處理前256個樣本
  • 傳輸完成中斷 (TC): 后半緩沖區(qū)填滿,處理后256個樣本
  • 緩沖區(qū)大小: 總共512個樣本 (uint16_t)
JustFloat數(shù)據(jù)格式
[float電壓值(4字節(jié))] [同步字(4字節(jié))]
  • float數(shù)據(jù): IEEE 754格式的float電壓值(單位:V)
  • 同步字: 0x00 0x00 0x80 0x7F
  • 協(xié)議開銷: 每個樣本點8字節(jié)(4字節(jié)數(shù)據(jù) + 4字節(jié)同步字)
傳輸速率限制
  • USB CDC 最大速率: 1 MByte/s
  • JustFloat 協(xié)議開銷: 每包需要4字節(jié)的協(xié)議同步尾巴
  • 基于USB HS CDC單通道最大傳輸速率: 125 kSa/s = (1MB/s傳輸速率 / (4字節(jié)float + 4字節(jié)同步字))

⚠️ 關于ADC參考電壓的說明
本示例代碼使用固定的 3.3V 作為ADC參考電壓進行計算,這是為了保持代碼簡潔,便于快速理解和演示ADC DMA與USB傳輸?shù)暮诵墓δ堋?/div>
在實際工程應用中,需要注意:
  • 電源電壓波動:實際系統(tǒng)的3.3V電源會因負載、溫度等因素產(chǎn)生波
  • 測量誤差:使用固定參考電壓會導致ADC測量結(jié)果出現(xiàn)系統(tǒng)性偏差
  • 推薦做法:對于精度要求較高的應用,建議使用STM32內(nèi)部的 VREFINT(內(nèi)部參考電壓通道)進行實時校準:
    • 讀取內(nèi)部VREFINT通道的ADC
    • 根據(jù)VREFINT的實際值反推出當前的VDDA電
    • 使用計算得到的VDDA_actual替換固定的3.3V進行電壓轉(zhuǎn)換

這樣可以消除電源電壓波動帶來的測量誤差,顯著提高ADC測量精度。

使用說明
編譯與下載
  • 使用VSCODE打開項目
  • 使用 Cmake + Gcc 編譯項目
  • 通過ST-Link連接開發(fā)板
  • 下載程序到開發(fā)板
  • 用USB線連接開發(fā)板到PC
波形觀察
推薦使用 JustFloat Web Oscilloscope 在線示波器工具觀察波形:
在線使用:
使用步驟:
  • 用USB線連接開發(fā)板到PC(會識別為一個虛擬串口設備)
  • 打開瀏覽器訪問 http://m.raoushi.com/bbs/dpj-242127-1.html
  • 點擊連接按鈕,選擇開發(fā)板的USB CDC虛擬串口端口
  • 即可實時觀察采集的波形

項目結(jié)構(gòu) PixPin_2026-01-23_14-21-50.png

開發(fā)環(huán)境
  • IDE: Vscode
  • 工具鏈: ARM GCC

常見問題
Q: 波形顯示不正常?
A: 確認模擬信號連接到PC2(ADC1_IN3)引腳,電壓范圍0-3.3V。
Q: 采樣率如何調(diào)整?
推薦工具: http://m.raoushi.com/bbs/dpj-242128-1.html - 在線定時器配置計算工具

采樣率計算說明:
  • 觸發(fā)方式: TIM1定時器每次觸發(fā),ADC會對規(guī)則組中的所有通道依次完成一次采樣轉(zhuǎn)換
  • 示例計算:
    • 配置了2個規(guī)則通道(IN3、IN9)
    • 如果定時器觸發(fā)頻率為50kHz
    • 那么每個通道的采樣率都是50kHz(總采樣率為50kHz × 2 = 100kSa/s)

計算公式:
定時器觸發(fā)頻率 = 單通道采樣率TIM1_ARR = (TIM1時鐘頻率 / 預分頻系數(shù)) / 目標觸發(fā)頻率 - 1

51hei2.png
使用步驟:

獲取最新源代碼:
游客,本帖隱藏的內(nèi)容需要積分高于 1 才可瀏覽,您當前積分為 0

論壇下載(可能非最新,同時受到論壇上傳大小限制,壓縮包砍了部分非必要資料):
STM32L496_ADC_DMA_MuChannel_Sample-master.7z (14.25 MB, 下載次數(shù): 0)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表