STM32控制LD3320源碼壓縮包如下:
全部源碼下載:
Cortex-M3 LD3320.zip
(6.67 MB, 下載次數: 81)
2017-2-6 01:15 上傳
點擊文件名下載附件
主程序預覽:
- /*****************************************************************************************
- *
- * 語音識別實驗
- *
- * 我采用洛天依做聲源
- * 添加識別語句在AsrItem.h里添加
- *
- *
- *
- *作者 :陳新梢 C-c.c.
- ******************************************************************************************/
- #include "stm32f10x.h"
- #include "delay.h"
- #include "led.h"
- #include "beep.h"
- #include "ld3320.h"
- #include "ff.h"
- /************************************************************************************/
- // nAsrStatus 用來在main主程序中表示程序運行的狀態,不是LD3320芯片內部的狀態寄存器
- // LD_ASR_NONE: 表示沒有在作ASR識別
- // LD_ASR_RUNING: 表示LD3320正在作ASR識別中
- // LD_ASR_FOUNDOK: 表示一次識別流程結束后,有一個識別結果
- // LD_ASR_FOUNDZERO: 表示一次識別流程結束后,沒有識別結果
- // LD_ASR_ERROR: 表示一次識別流程中LD3320芯片內部出現不正確的狀態
- /***********************************************************************************/
- u8 nAsrStatus=0;
- u8 text=0;//調通訊用
- int main(void)
- {
- unsigned char nAsrRes;
- FATFS fs; // 邏輯驅動器的標志
- LED_Init(); //LED端口初始化
- delay_init(); //延時初始化
- BEEP_Init(); //蜂鳴器端口初始化
- SD_INIT(); //SD卡初始化
- LD3320_Init(); //LD3320初始化
- f_mount(0, &fs);//裝載驅動區
-
- LED0 = 0;LED1 = 0;BEEP = 0;
- delay_ms(200);
- LED0 = 1;LED1 = 1;BEEP = 1;
-
- //====================
- //測試通訊是否正常
- 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; //初始狀態:沒有在作ASR
- while(1)
- {
- if (bMp3Play!=0) //如果還在播放MP3中,則等待,直到MP3播放完畢 即bMp3Play==0
- continue; //bMp3Play 是定義的一個全局變量用來記錄MP3播放的狀態,不是LD3320芯片內部的寄存器
- switch(nAsrStatus)
- {
- case LD_ASR_RUNING:
- break;
- case LD_ASR_ERROR:
- break;
- case LD_ASR_NONE:
- {
- nAsrStatus=LD_ASR_RUNING;
- if (RunASR()==0) //啟動一次ASR識別流程:ASR初始化,ASR添加關鍵詞語,啟動ASR運算
- {
- nAsrStatus = LD_ASR_ERROR;
-
- }
- break;
- }
- case LD_ASR_FOUNDOK:
- {
-
- nAsrRes = LD_GetResult(); //一次ASR識別流程結束,去取ASR識別結果
- 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;
- }
- }
- }
- }
復制代碼
|