日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于STM32F103C8T6片内Flash的音频播放(DAC通道)

發布時間:2024/3/26 编程问答 112 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于STM32F103C8T6片内Flash的音频播放(DAC通道) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基于STM32F103C8T6片內Flash的音頻播放(DAC通道)

  • 一、STM32的DAC通道介紹
    • 1、DAC 簡介
    • 2、STM32中的DAC主要特點
    • 3、DAC 功能框圖剖析
    • 4、DAC配置
  • 二、實驗要求
  • 三、數據準備
    • 1、生成mav文件
    • 2、使用UltraEdit得到相關數據
    • 3、使用notepad++添加相關內容
  • 四、使用DAC輸出周期2khz的正弦波
  • 五、使用DAC輸出數字音頻歌曲數據轉換為模擬音頻波形輸出
  • 六、總結
  • 參考

一、STM32的DAC通道介紹

1、DAC 簡介

  • DAC 為數字/模擬轉換模塊,故名思議,它的作用就是把輸入的數字編碼,轉換成對應的模擬電壓輸出,它的功能與 ADC 相反。在常見的數字信號系統中,大部分傳感器信號被化成電壓信號,而 ADC 把電壓模擬信號轉換成易于計算機存儲、處理的數字編碼,由計算機處理完成后,再由 DAC 輸出電壓模擬信號,該電壓模擬信號常常用來驅動某些執行器件,使人類易于感知。如音頻信號的采集及還原就是這樣一個過程。
  • STM32 具有片上 DAC 外設,它的分辨率可配置為 8 位或 12 位的數字輸入信號,具有兩個 DAC 輸出通道,這兩個通道互不影響,每個通道都可以使用 DMA 功能,都具有出錯檢測能力,可外部觸發。

2、STM32中的DAC主要特點

  • 擁有2個DAC轉換器
  • DAC通道為8位或12位單調輸出
  • DAC通道為12位模式下數據的左對齊或者右對齊
  • DAC通道具有同步更新功能
  • DAC通道可以生成噪聲波形
  • DAC通道可以生成三角波形
  • 雙DAC通道同時或者分別轉換
  • 每個DAC通道都有DMA功能

3、DAC 功能框圖剖析

  • ①中表示的是DAC模塊模擬部分的供電和DAC模塊的參考電壓 ,STM32 的 DAC 規定了它的參考電壓輸入范圍為 2.4—3.3V。一般,取值為3.3V。
  • ②中DAC_OUTx表示DAC輸出通道,對應引腳是PA4或者PA5。

4、DAC配置

(1)開啟相應引腳時鐘,設置 PA4 為模擬輸入。(DAC1對應PA4,DAC2對應PA5)

STM32F103ZET6 的 DAC 通道 1 在 PA4 上,所以,我們要使能 PORTA 的時鐘并設置 PA4 為模擬輸入。
DAC 本身是輸出,但是為什么端口要設置為模擬輸入模式呢?
因為一但使能 DACx 通道之后,相應的 GPIO 引腳(PA4 或者 PA5)會自動與 DAC 的模擬輸出相連,設置為輸入,是為了避免額外的干擾。即使是直接用芯片也可以無腦設置為模擬輸入,實驗可得雖然引腳為模擬輸入,但仍可輸出相應信號。

(2)使能相應 DAC 時鐘,本次實驗通道對應為DAC1;
(3)初始化 DAC,設置 DAC 的工作模式;
(4)使能 DAC 轉換通道;

二、實驗要求

  • 1)實驗數據準備:用Adobe audition或goldwave等音頻編輯軟件錄制“您好歡迎光臨!”的幾秒鐘的聲音(8khz采樣、8bit量化編碼的單聲道wav格式),確保音頻數據盡量小(最大不超64KB)。然后編程將其分批次寫入stm32f103c8t6芯片內部flash區域。
  • 2)數字音頻還原播放任務:編程讀取此段音頻,分別通過 (a)stm32f103c8t6自帶的DAC通道,轉換為模擬音頻進行播放,并用示波器觀察波形,用耳機/喇叭收聽,評判音樂還原效果;
  • 提示:建議先用單音音頻(比如2000Hz的正弦波)的wav數據進行實驗,通過DAC或PCM音頻模塊能夠基本還原出原始正弦波聲音后,再用語音和音樂信號進行實驗。

三、數據準備

1、生成mav文件

  • Audition生成輸出一個周期2khz的正弦波的mav文件

  • ①選擇文件->新建->音頻文件

  • ②設置相關采用頻率

  • ③效果->選擇生成基本音色

  • ④設置相關頻率

  • ⑤導出為mav文件,選擇文件->導出->文件

  • Audition生成一段數字音頻歌曲數據的mav文件

  • 打開一段歌曲音頻文件

  • 將音頻剪切成5-10s

  • 右擊->存儲選區

  • 點擊更改:選擇采樣類型為8000Hz,單聲道,16位,再點擊確認

  • 導出wav文件

2、使用UltraEdit得到相關數據

  • ①用該軟件打開剛才保存的wav文件

  • ②CTRL+A全選,接著鼠標右鍵,選擇 十六進制復制選定視圖,將內容粘貼到一個新建文件中

  • ③在新建文件中,CTRL+A,接著鼠標右鍵,選擇范圍輸入起始的行號和列號,確定就選中了整個我們需要的內容

3、使用notepad++添加相關內容

  • ①打開該軟件后,將上面選中的內容復制粘貼到該軟件中(在上面軟件中,右鍵選擇復制)
  • ②在需要添加內容的位置:Alt+c,為十六進制數加0X前綴(一列一列的添加)

四、使用DAC輸出周期2khz的正弦波

  • 觀察正弦波的波形我們直接使用野火提高的例程

  • 這里使用MATLAB打開例程中的采樣程序

  • 然后把輸出的采樣點復制到波形數據中

  • 編譯燒錄下載

  • 使用示波器測量PA4、PA5的引腳便可看到正弦波形
    (這里由于沒有示波器就無法展示波形圖)

五、使用DAC輸出數字音頻歌曲數據轉換為模擬音頻波形輸出

  • 將上面使用notepad++添加0x前綴之后的數據復制到keil工程中bsp_dac.c文件的波形數據的數組中

  • 編譯燒錄,使用示波器觀察波形
    (這里由于沒有示波器就無法展示波形圖)

六、總結

本次對STM32DAC的通道的使用過程中,學習到了DAC是集成了2個輸出緩存,可以用來減少輸出阻抗,無需外部運放即可直接驅動外部負載。每個DAC通道輸出緩存可以通過設置DAC_CR寄存器的BOFFx位來使能或者關閉。整個學習過程很有意思,挺好玩的。

參考

詳細介紹Audition輸出一個周期2khz的正弦波(循環)。將一段數字音頻歌曲數據轉換為模擬音頻波形輸出(循環)。
STM32F103的DAC——輸出聲音效果

總結

以上是生活随笔為你收集整理的基于STM32F103C8T6片内Flash的音频播放(DAC通道)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。