娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

STM32 wavplayer播放單聲道音頻的處理方法

發布者:EtherealGrace最新更新時間:2024-08-30 來源: elecfans關鍵字:STM32 手機看文章 掃描二維碼
隨時隨地手機看文章

最近在使用rtthread 的 audio設備播放wav的音頻,MCU使用的是STM32F4,使用過程中發現,不能在播放單聲道音頻的時候會特別快,究其原因是因為STM32的I2S是雙聲道輸出,而音頻輸入的聲音是單聲道的,相當于少一個聲道的數據,其實如果播放立體聲音頻就沒有問題了。


但是使用立體聲音頻會增加WAV文件的體積,這樣占用的FLASH空間就大了,目前想到的方案是將讀取到的音頻數據擴展到雙聲道,我們直接修改wavplayer.c中的內容,如果有更好的解決方案,歡迎指正:


修改點如下:

1、聲明一個聲道數變量來記錄當前音頻的聲道數,在聲明一個ushort類型的指針,方便后邊計算

2、獲取當前音頻的聲道數

3、獲取音頻文件讀取緩沖區的指針

4、如果是單聲道音頻,那么將 單聲道的音頻擴展到左右兩個聲道,形成雙聲道數據流

1.jpg

2.jpg


關鍵字:STM32 引用地址:STM32 wavplayer播放單聲道音頻的處理方法

上一篇:探究STM32H7芯片IAP跳轉失敗案例
下一篇:STM32模數轉換器 (ADC)介紹

推薦閱讀最新更新時間:2025-06-25 11:33

IU8309單雙節鋰電內置升壓12V,輸出25W單聲道AB/D類音頻功放IC
IU8309可鋰電池和12V適配器雙電源供電應用,適用于2.7V~12V各個供電節點,防破音,AB/D切換功率限制,內置升壓模塊,具備自適應升壓功能,恒定25W輸出功率F類單聲道音頻功率放大器。 IU8309C是一款適用于2.7V~12V各個供電節點,帶四種防破音模在式,AB/D切換,功率限制,內置BOOST升壓模塊并且升壓模塊具備自適應升壓功能的R類單聲道音頻功率放大器。在單節鋰電池供電的情況下,IU8309C可以驅動低至4Ω的負載,最大輸出19W的恒定功率;在雙節鋰電串聯供電的情況下IU8309C可以驅動低至3Ω的負載,最大輸出25W的恒定功率.AB類D類可切換模式的設計,最大限度的減少音頻子系統中功放對FM的干擾.IU830
[嵌入式]
IU8309單雙節鋰電內置升壓12V,輸出25W<font color='red'>單聲道</font>AB/D類<font color='red'>音頻</font>功放IC
STM32學習(三)串口實驗
串口簡介 UART:全雙工、異步、串行通信方式 經常用來打印調試信息 物理層 串口物理層有很多標準及變種:TTL、RS232、RS422、RS485等; RS232 標準 上圖中,設備A 與 設備B 的 DB9接口 通過串口線連接,串口信號線中使用 RS232電平標準 傳輸數據信號。由于 RS232電平標準不能直接被控制器識別,所以需要通過一個 “電平轉換芯片(如MA3232)” 來將 RS232電平 和 TTL電平進行轉換(發送數據時,將TTL電平轉換成RS232電平;接收數據時,將RS232電平轉換成TTL電平)。 TTL電平標準 VS RS232電平標準 邏輯0 邏輯1 TTL 0 ~ 0.5V
[單片機]
STM32(2):點亮LED(下)
概述 點亮LED表面看起來貌似很簡單,但是如何想要搞清楚其背后牽涉的每一行代碼的具體含義,還是需要花費一些功夫的,而且,只有把LED的背后只是搞清楚了,才算嵌入式開發的基礎入門。 今天我們就來研究一下LED的重頭戲,RCC_Init;什么是RCC?上手冊: file RCC RCC,Reset and Clock Control,重置以及時鐘控制;STM32手冊使用了兩個章節來對其進行描述,可見它的重要性;對于RCC的初始化也是比較復雜,里面包含了STM32對于時鐘的相關機制, 代碼總覽 void RCC_init(uint16_t PLL){ uint32_t temp=0; *((uint32_t *)RCC
[單片機]
當前STM32幾種最流行的開發環境(一)
今天我們就來談談當前最流行的幾種STM32家族MCU的開發方案,主要向新人朋友們介紹幾種集成開發環境,對于大佬們來說,如果您還在使用破解版的KEIL開發項目,不妨試試我下面提到的另外幾種IDE,或許會有更好的開發體驗。 【嵌牛鼻子】:Keil5 【嵌牛提問】:當前STM32幾種最流行的開發環境 【嵌牛正文】: 最正統,最經典的嵌入式MCU開發環境。 價格/跨平臺 ★ 收費。國內由米爾科技代理授權,但似乎不面向個人開發者分發授權。我曾經致電米爾科技的銷售人員,對方直接要求我提供公司信息,我說我只是個人開發者,想用KEIL進行STM32的開發,對方光明正大地讓我用破解注冊機,我擔心我提供公司信息后,被對方猛查,或者發律師函,這不就
[單片機]
IAR環境下ucosii在STM32上的移植
Ucosii移植到STM32上 1.使用的開發環境是IAR 5.4 STM32芯片為STM32F103ZET6 使用ST官方提供的標準固件庫,建立工程, 我下載的苦艱苦的版本為STM32F10x_StdPeriph_Lib_V3.5.0,里面的文件分布為: 其中,Libraries文件夾里面放的是標準庫文件,Project文件夾里面放的是STM32的各個外設的使用范例和一個工程模板,Utilities文件夾里面放的是ST公司的評估板例子,剩下的文件就是教我們怎樣使用標準庫,而我們主要使用的就是Libraries和Project里面的文件。 1.1首先新建stm32這個文件夾,在里面再新建3個文件夾include,proj
[單片機]
STM32中斷優先級void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)
void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct) { u32 tmppriority = 0x00, tmpreg = 0x00, tmpmask = 0x00; u32 tmppre = 0, tmpsub = 0x0F; /* Check the parameters */ assert(IS_FUNCTIONAL_STATE(NVIC_InitStruct- NVIC_IRQChannelCmd)); assert(IS_NVIC_IRQ_CHANNEL(NVIC_InitStruct- NVIC_IRQChannel)); assert(IS_NVIC_PREE
[單片機]
STM32最小系統設計
下面主要說明一下STM32最小系統設計時的一些注意事項: 1、STM32的工作電壓(VDD)為2.0~3.6v,通過內置的電壓調節器提供所需的1.8v電源,其部分引腳是3.3v/5v兼容的 2、BOOT0,BOOT1的連接方式決定了程序的啟動模式。 4、根據啟動模式,在沒有一鍵下載電路的情況下,我們可以另BOOT0=1,BOOT1=0,此時運行系統存儲區中STM32自帶的啟動代碼,可以通過串口工具下載我們的程序(下載到主閃存存儲區,地址:0x08000000),待下載完成后,設置BOOT0=0,BOOT1=0,此時就開始執行我們的代碼了。 5、STM32的最小系統可以不接外部晶振,由內部8MHZ晶振提供,但通常為了更加精確的提供
[單片機]
<font color='red'>STM32</font>最小系統設計
STM32的結構和組成
2.5 芯片里面有什么 STM32F103采用的是Cortex-M3內核,內核即CPU,由ARM公司設計。 ARM公司并不生產芯片,而是出售其芯片技術授權。 芯片生產廠商(SOC)如ST、TI、Freescale,負責在內核之外設計部件并生產整個芯片,這些內核之外的部件被稱為核外外設或片上外設。 如:GPIO、USART(串口)、I2C、SPI等都在做片上外設。 ICode總線 ICode中的I表示Instruction,及指令。 我們寫好的程序編譯之后都是一條條指令,存放在FLASH中,內核要讀取這些指令來執行程序就必須通過ICode總線。 驅動單元 DCode總線 D表示Data,即數據,這要總線是用來取數的。 D
[單片機]
<font color='red'>STM32</font>的結構和組成
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 济南市| 白玉县| 滨海县| 梁山县| 和龙市| 泽州县| 南澳县| 尖扎县| 固镇县| 仁怀市| 武安市| 上高县| 凤庆县| 娱乐| 寿阳县| 天门市| 丽江市| 广平县| 东丽区| 静安区| 寿光市| 长宁县| 隆子县| 蓝田县| 丘北县| 三穗县| 子长县| 修文县| 陆川县| 铜梁县| 金阳县| 屏山县| 罗田县| 西平县| 娄底市| 衡南县| 鸡东县| 汤原县| 贵德县| 怀化市| 光泽县|