|
stm32F103錄音回放原理圖:
0.png (25.55 KB, 下載次數(shù): 101)
下載附件
2017-5-9 00:47 上傳
0.png (52.63 KB, 下載次數(shù): 119)
下載附件
2017-5-9 00:46 上傳
基于STM32的語音存貯與回放PCB
\野火注\
1 液晶尺寸是3.2寸,控制器是 ILI9341
2 SD卡4位模式DMA ,支持長文件名及中文文件名
stm32單片機源程序:
- /******************** (C) COPYRIGHT 2012 WildFire Team **************************
- * 文件名 :main.c
- * 描述 :LCD顯示實驗,可中英混合顯示,可顯示BMP格式的圖片,可截圖,
- * 截圖保存在MicroSD卡中,文件名存為myScreen.bmp,
- * 需顯示的BMP圖片和字庫存放在MicroSD卡中。
- * 實驗平臺:野火STM32開發(fā)板
- * 庫版本 :ST3.5.0
- *
- * 作者 :wildfire team
- **********************************************************************************/
- /* Includes ------------------------------------------------------------------*/
- #include "stm32f10x.h"
- #include "SysTick.h"
- #include "usart1.h"
- #include "lcd.h"
- #include "sd_fs_app.h"
- #include "Sd_bmp.h"
- #include "adc.h"
- #include "dac.h"
- #include "key.h"
- // ADC1轉(zhuǎn)換的電壓值通過MDA方式傳到SRAM
- extern __IO uint16_t ADC_ConvertedValue;
- //#define SIZE 1000*1024
- #define WriteStartAddress ((uint32_t)0x0800B000) //在這里隨著程序代碼的增加,初試地址也要隨著增加,否則不能寫入a000
- #define WriteEndAddress ((uint32_t)0x0807F7FF)
- //#define FLASH_PAGE_SIZE ((u16)0x400) //1024
- #define FLASH_PAGE_SIZE ((u16)0x800) //2048
- uint32_t EraseCounter = 0x00, WriteAddress = 0x00,ReadAddress = 0x00;
- uint32_t NbrOfPage = 0x0000;
- volatile FLASH_Status FLASHStatus;//枚舉變量的定義
- // 軟件延時 自己加了個大延時
- void Delay(__IO uint32_t nCount)
- {
- for(; nCount != 0; nCount--);
- }
- void NDelay(uint32_t n)
- {
- uint32_t i;
- for(i=0;i<n;i++)
- Delay(0xFFF);
- }
- int main(void)
- {
- /* USART1 config */
- USART1_Config();
- /* enable adc1 and config adc1 to dma mode */
- ADC1_Init();
-
- DAC1_Init();
- SysTick_Init();
- LCD_Init(); /* LCD 初始化*/
- sd_fs_init();
- FLASHStatus = FLASH_COMPLETE;
-
- /*顯示圖像*/
- Lcd_show_bmp(80, 0,"/pic4.bmp");
- /*豎屏顯示*/
- LCD_Str_ENCH_O_P(55,30,"請按錄音鍵開始錄音",0XF800);
- LCD_Str_CH_O_P(35,30,"制作人",0X0000);
- LCD_Str_ENCH_O_P(17,60,"武漢科技大學(xué)教十樓208室",0X0000);
- // while (1)
- // {
- // if( Key_Scan(GPIOE,GPIO_Pin_5) == KEY_ON )
- // {
- LCD_Str_CH_P(55,30,"正在錄音請稍后片刻",0XF800,0xffff);
- FLASH_Unlock();
- /* Clear All pending flags */
- FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);
-
- /* Define the number of page to be erased */
- NbrOfPage = (WriteEndAddress - WriteStartAddress) / FLASH_PAGE_SIZE;
-
- /* Erase the FLASH pages */
- for(EraseCounter = 0; (EraseCounter <= NbrOfPage)&&(FLASHStatus == FLASH_COMPLETE); EraseCounter++)
- {
- FLASHStatus=FLASH_ErasePage(WriteStartAddress + (FLASH_PAGE_SIZE * EraseCounter));
- }
-
- //寫數(shù)據(jù)
- WriteAddress = WriteStartAddress;
- while((WriteAddress < WriteEndAddress)&&(FLASHStatus == FLASH_COMPLETE))
- {
- printf("0x%04X ",ADC_ConvertedValue);
- FLASHStatus=FLASH_ProgramHalfWord(WriteAddress, ADC_ConvertedValue);
- WriteAddress = WriteAddress + 2;
- }
- FLASH_Lock();
-
- LCD_Str_CH_P(55,30,"錄音完畢請按播放鍵",0XF800,0xffff);
- NDelay(10000);
- // }
- // if( Key_Scan(GPIOE,GPIO_Pin_6) == KEY_ON )
- // {
- LCD_Str_CH_P(55,30,"正在播放請慢慢傾聽",0XF800,0xffff);
- //讀數(shù)據(jù)
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
0.png (47.71 KB, 下載次數(shù): 104)
下載附件
2017-5-9 00:45 上傳
完整內(nèi)容下載:
基于STM32的語音存貯與回放系統(tǒng).rar
(9.89 MB, 下載次數(shù): 175)
2017-5-9 00:49 上傳
點擊文件名下載附件
基于stm32的語音存儲回放 下載積分: 黑幣 -5
|
|