基于stm32F4 的語音存儲回放系統(tǒng)設計
平臺:STM32F407ZGT6
0.png (55.15 KB, 下載次數(shù): 131)
下載附件
2017-5-9 00:51 上傳
功能:語音存儲回放(信號采集、存儲、重現(xiàn))
硬件鏈接: KEY1 —> PF3
KEY2 —> PF4
LED2 —> PF7
LED3 —> PF8
LED4 —> PF9
LED5 —> PF10
AD輸入 —> PA0
DA輸出 —> PA3
使用說明:
按以上說明連接好電路,
按下KEY1開始錄音(信號采集并存儲),此時LED2點亮,此時表示錄音正在進行,錄音結束后,LED2自動熄滅
錄音結束(LED2熄滅)后,按下KEY2開始播放(對之前采集存儲的信號進行回放),此時LED4點
亮,表示正在播放,播放結束后,LED4自動熄滅。此時錄音回放完成。若要繼續(xù)使用,按下Reset 鍵,重復以上步驟。
注意:按鍵KEY2只有在KEY1按下并等到LED2熄滅后才有效。
不足之處:錄音,播放過程當中沒有暫停,播放功能。必須等待 Flash 中數(shù)據(jù)寫滿,一次存儲才完成。
一次錄音播放完成之后,不能自動擦除 Flash 中的數(shù)據(jù),必須 Reset 后方能進行下次存儲。
說明:此代碼作者學習STM32入門的實例,只是簡單實現(xiàn)了基礎功能,因此有很多不足之處。對于初學者來講可以練習到常用到的外設,如果朋友有興趣,可以再在此基 礎上增加更多的功能并且完善。
例如:
在錄音,播放過程中增加暫停,停止,繼續(xù)(錄音)播放功能;
用PCM算法等壓縮編碼,使同樣大小的Flash,錄音時間更長;
結合LCD,實現(xiàn)友好的人機交互界面。
凡是你能想得到的......
stm32單片機源程序(主程序):
- /*********************************************************************************
- * Copyright: (C) 2016 SCUEC
- * All rights reserved.
- *
- * Filename: main.c
- * Description:
- *
- * ChangeLog: 1, Release initial version on "5/11/16 10:52:13"
- *
- ********************************************************************************/
-
- #include "stm32f4xx.h"
- #include "stm32f4_flash.h"
- #include "stm32f4_timer.h"
- #include "stm32f4_adc.h"
- #include "stm32f4_dac.h"
- #include "stm32f4_key.h"
- #include "stm32f4_led.h"
- extern uint32_t g_writeAdder;
- extern uint32_t g_readAdder;
- volatile u16 g_flag = 0;
- void Record(void);
- void Play(void);
- int main(void)
- {
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
- key_config(); //按鍵初始化
- Init_LED_GPIO(); //LED初始化
- TIM2_config(); //TIM2定時器配置
- TIM3_config(); //TIM3定時器配置,
- ADC_config(); //ADC配置
- DMA_config(); //DMA配置
- DAC_config(); //DAC配置
-
- while(1)
- {
- if(key_pressed(KEY1) && !g_flag)
- {
- Record();
- }
-
- if(g_flag && key_pressed(KEY2))
- {
- Play();//開始執(zhí)行Play函數(shù)
- if(g_readAdder == 0x0800C004)
- {
- TIM_Cmd(TIM2,DISABLE);
- }
- }
- }
- }
-
- /***************采集并且存儲**************/
- void Record(void)
- {
- turn_led(LED2,ON);//LED相關參數(shù)配置,點亮LED3
- TIM_Cmd(TIM3,ENABLE);
- }
- /*****讀取flash中的值并通過DAC輸出*/
- void Play(void)
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
完整資料下載:
Voice_Record_Play-master.rar
(403.71 KB, 下載次數(shù): 213)
2017-5-9 00:56 上傳
點擊文件名下載附件
stm32語音存儲回放 下載積分: 黑幣 -5
|