STM32控制LD3320源码压缩包如下:
全部源码下载:
Cortex-M3 LD3320.zip
(6.67 MB, 下载次数: 81)
主程序预览:
- /*****************************************************************************************
- *
- * 语音识别实验
- *
- * 我采用洛天依做声源
- * 添加识别语句在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;
- }
- }
- }
- }
复制代码
|