|
STM32控制LD3320源碼壓縮包如下:
全部源碼下載:
Cortex-M3 LD3320.zip
(6.67 MB, 下載次數(shù): 81)
2017-2-6 01:15 上傳
點(diǎn)擊文件名下載附件
主程序預(yù)覽:
- /*****************************************************************************************
- *
- * 語(yǔ)音識(shí)別實(shí)驗(yàn)
- *
- * 我采用洛天依做聲源
- * 添加識(shí)別語(yǔ)句在AsrItem.h里添加
- *
- *
- *
- *作者 :陳新梢 C-c.c.
- ******************************************************************************************/
- #include "stm32f10x.h"
- #include "delay.h"
- #include "led.h"
- #include "beep.h"
- #include "ld3320.h"
- #include "ff.h"
- /************************************************************************************/
- // nAsrStatus 用來(lái)在main主程序中表示程序運(yùn)行的狀態(tài),不是LD3320芯片內(nèi)部的狀態(tài)寄存器
- // LD_ASR_NONE: 表示沒有在作ASR識(shí)別
- // LD_ASR_RUNING: 表示LD3320正在作ASR識(shí)別中
- // LD_ASR_FOUNDOK: 表示一次識(shí)別流程結(jié)束后,有一個(gè)識(shí)別結(jié)果
- // LD_ASR_FOUNDZERO: 表示一次識(shí)別流程結(jié)束后,沒有識(shí)別結(jié)果
- // LD_ASR_ERROR: 表示一次識(shí)別流程中LD3320芯片內(nèi)部出現(xiàn)不正確的狀態(tài)
- /***********************************************************************************/
- u8 nAsrStatus=0;
- u8 text=0;//調(diào)通訊用
- int main(void)
- {
- unsigned char nAsrRes;
- FATFS fs; // 邏輯驅(qū)動(dòng)器的標(biāo)志
- LED_Init(); //LED端口初始化
- delay_init(); //延時(shí)初始化
- BEEP_Init(); //蜂鳴器端口初始化
- SD_INIT(); //SD卡初始化
- LD3320_Init(); //LD3320初始化
- f_mount(0, &fs);//裝載驅(qū)動(dòng)區(qū)
-
- LED0 = 0;LED1 = 0;BEEP = 0;
- delay_ms(200);
- LED0 = 1;LED1 = 1;BEEP = 1;
-
- //====================
- //測(cè)試通訊是否正常
- LD_Reset();
- text = LD_Read(0x06);
- LD_Write(0x35,0x33);
- LD_Write(0x1b,0x55);
- LD_Write(0xb3,0xaa);
- text = LD_Read(0x35);
- text = LD_Read(0x1b);
- text = LD_Read(0xb3);
- LD_Reset();
- text = LD_Read(0x06);
- text = LD_Read(0x06);
- text = LD_Read(0x35);
- text = LD_Read(0xb3);
- LD_Reset();
- //===================
- PlayDemoSound_mp3("wojiaoluotianyi.mp3",2);
- nAsrStatus = LD_ASR_NONE; //初始狀態(tài):沒有在作ASR
- while(1)
- {
- if (bMp3Play!=0) //如果還在播放MP3中,則等待,直到MP3播放完畢 即bMp3Play==0
- continue; //bMp3Play 是定義的一個(gè)全局變量用來(lái)記錄MP3播放的狀態(tài),不是LD3320芯片內(nèi)部的寄存器
- switch(nAsrStatus)
- {
- case LD_ASR_RUNING:
- break;
- case LD_ASR_ERROR:
- break;
- case LD_ASR_NONE:
- {
- nAsrStatus=LD_ASR_RUNING;
- if (RunASR()==0) //啟動(dòng)一次ASR識(shí)別流程:ASR初始化,ASR添加關(guān)鍵詞語(yǔ),啟動(dòng)ASR運(yùn)算
- {
- nAsrStatus = LD_ASR_ERROR;
-
- }
- break;
- }
- case LD_ASR_FOUNDOK:
- {
-
- nAsrRes = LD_GetResult(); //一次ASR識(shí)別流程結(jié)束,去取ASR識(shí)別結(jié)果
- switch(nAsrRes)
- {
- case 0: PlayDemoSound_mp3("nihao.mp3",4);break;
- case 1: PlayDemoSound_mp3("wojiaoluotianyi.mp3",4);break;
- case 2: PlayDemoSound_mp3("huanyinhuilai.mp3",4);break;
- case 3: PlayDemoSound_mp3("yilusunfen.mp3",4);break;
- case 4: PlayDemoSound_mp3("wozaio.mp3",4);break;
- case 5: PlayDemoSound_mp3("zaoshanghao.mp3",4);break;
- case 6: PlayDemoSound_mp3("jinshengrum.mp3",2);break;
- case 7: PlayDemoSound_mp3("yiji.mp3",2);break;
- case 8:
- PlayDemoSound_mp3("taidengyidakai.mp3",4);
- GPIO_ResetBits(GPIOB,GPIO_Pin_5);
- GPIO_ResetBits(GPIOE,GPIO_Pin_5);
- break;
- case 9:
- PlayDemoSound_mp3("taidengyiguanbi.mp3",4);
- GPIO_SetBits(GPIOB,GPIO_Pin_5);
- GPIO_SetBits(GPIOE,GPIO_Pin_5);
- break;
- case 10:
- break;
- case 11:
- break;
- case 12:
- break;
- case 13:
- break;
- case 14:
- break;
- case 15:
- break;
- case 16:
- break;
- case 17:
- break;
- case 18:
- break;
- case 19:
- break;
- }
- nAsrStatus = LD_ASR_NONE;
- break;
- }
- case LD_ASR_FOUNDZERO:
- default:
- {
- nAsrStatus = LD_ASR_NONE;
- break;
- }
- }
- }
- }
復(fù)制代碼
|
|