找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6476|回复: 6
打印 上一主题 下一主题
收起左侧

STM32控制LD3320源码 语音识别实验

[复制链接]
跳转到指定楼层
楼主
STM32控制LD3320源码压缩包如下:


全部源码下载:
Cortex-M3 LD3320.zip (6.67 MB, 下载次数: 81)

主程序预览:
  1. /*****************************************************************************************
  2. *
  3. *                                                                                                                                        语音识别实验
  4. *                                                                                                                               
  5. *                                                                                                                                我采用洛天依做声源  
  6. *                                                                                                        添加识别语句在AsrItem.h里添加
  7. *                                                                                       
  8. *
  9. *
  10. *作者 :陈新梢         C-c.c.
  11. ******************************************************************************************/
  12. #include "stm32f10x.h"
  13. #include "delay.h"
  14. #include "led.h"
  15. #include "beep.h"
  16. #include "ld3320.h"
  17. #include "ff.h"

  18. /************************************************************************************/
  19. //        nAsrStatus 用来在main主程序中表示程序运行的状态,不是LD3320芯片内部的状态寄存器
  20. //        LD_ASR_NONE:                表示没有在作ASR识别
  21. //        LD_ASR_RUNING:                表示LD3320正在作ASR识别中
  22. //        LD_ASR_FOUNDOK:                表示一次识别流程结束后,有一个识别结果
  23. //        LD_ASR_FOUNDZERO:        表示一次识别流程结束后,没有识别结果
  24. //        LD_ASR_ERROR:                表示一次识别流程中LD3320芯片内部出现不正确的状态
  25. /***********************************************************************************/

  26. u8 nAsrStatus=0;       
  27. u8 text=0;//调通讯用

  28. int main(void)
  29. {       
  30.         unsigned char nAsrRes;
  31.         FATFS fs;                      // 逻辑驱动器的标志

  32.         LED_Init();                //LED端口初始化
  33.         delay_init();        //延时初始化
  34.         BEEP_Init();        //蜂鸣器端口初始化
  35.         SD_INIT();                 //SD卡初始化
  36.         LD3320_Init();         //LD3320初始化
  37.         f_mount(0, &fs);//装载驱动区
  38.        
  39.         LED0 = 0;LED1 = 0;BEEP = 0;
  40.         delay_ms(200);
  41.         LED0 = 1;LED1 = 1;BEEP = 1;
  42.        
  43. //====================
  44. //测试通讯是否正常
  45.         LD_Reset();
  46.         text = LD_Read(0x06);
  47.         LD_Write(0x35,0x33);
  48.         LD_Write(0x1b,0x55);
  49.         LD_Write(0xb3,0xaa);
  50.         text = LD_Read(0x35);
  51.         text = LD_Read(0x1b);
  52.         text = LD_Read(0xb3);
  53.         LD_Reset();
  54.         text = LD_Read(0x06);
  55.         text = LD_Read(0x06);
  56.         text = LD_Read(0x35);
  57.         text = LD_Read(0xb3);
  58.         LD_Reset();
  59. //===================
  60.         PlayDemoSound_mp3("wojiaoluotianyi.mp3",2);
  61.         nAsrStatus = LD_ASR_NONE;                                                                                                                //初始状态:没有在作ASR
  62.         while(1)
  63.         {       
  64.                 if (bMp3Play!=0)                                                                                                                                        //如果还在播放MP3中,则等待,直到MP3播放完毕 即bMp3Play==0
  65.                 continue;                                                                                                                                                                        //bMp3Play 是定义的一个全局变量用来记录MP3播放的状态,不是LD3320芯片内部的寄存器
  66.                 switch(nAsrStatus)
  67.                 {
  68.                         case LD_ASR_RUNING:
  69.                                 break;
  70.                         case LD_ASR_ERROR:               
  71.                                 break;
  72.                         case LD_ASR_NONE:
  73.                         {
  74.                                 nAsrStatus=LD_ASR_RUNING;
  75.                                 if (RunASR()==0)                                                                                                                        //启动一次ASR识别流程:ASR初始化,ASR添加关键词语,启动ASR运算
  76.                                 {
  77.                                         nAsrStatus = LD_ASR_ERROR;
  78.                                
  79.                                 }
  80.                                 break;                                                 
  81.                         }
  82.                         case LD_ASR_FOUNDOK:
  83.                         {
  84.        
  85.                                 nAsrRes = LD_GetResult();                                                                                        //一次ASR识别流程结束,去取ASR识别结果
  86.                                 switch(nAsrRes)
  87.                                 {
  88.                                         case 0: PlayDemoSound_mp3("nihao.mp3",4);break;
  89.                                         case 1: PlayDemoSound_mp3("wojiaoluotianyi.mp3",4);break;
  90.                                         case 2: PlayDemoSound_mp3("huanyinhuilai.mp3",4);break;
  91.                                         case 3: PlayDemoSound_mp3("yilusunfen.mp3",4);break;
  92.                                         case 4: PlayDemoSound_mp3("wozaio.mp3",4);break;
  93.                                         case 5: PlayDemoSound_mp3("zaoshanghao.mp3",4);break;
  94.                                         case 6: PlayDemoSound_mp3("jinshengrum.mp3",2);break;
  95.                                         case 7: PlayDemoSound_mp3("yiji.mp3",2);break;
  96.                                         case 8:
  97.                                                 PlayDemoSound_mp3("taidengyidakai.mp3",4);       
  98.                                                 GPIO_ResetBits(GPIOB,GPIO_Pin_5);
  99.                                                 GPIO_ResetBits(GPIOE,GPIO_Pin_5);
  100.                                         break;
  101.                                         case 9:
  102.                                                 PlayDemoSound_mp3("taidengyiguanbi.mp3",4);
  103.                                                 GPIO_SetBits(GPIOB,GPIO_Pin_5);
  104.                                                 GPIO_SetBits(GPIOE,GPIO_Pin_5);
  105.                                         break;
  106.                                         case 10:
  107.                                         break;
  108.                                         case 11:
  109.                                         break;
  110.                                         case 12:
  111.                                         break;
  112.                                         case 13:
  113.                                         break;
  114.                                         case 14:
  115.                                         break;
  116.                                         case 15:
  117.                                         break;
  118.                                         case 16:
  119.                                         break;
  120.                                         case 17:
  121.                                         break;
  122.                                         case 18:
  123.                                         break;
  124.                                         case 19:
  125.                                         break;
  126.                                 }
  127.                                 nAsrStatus = LD_ASR_NONE;
  128.                                 break;
  129.                         }
  130.                         case LD_ASR_FOUNDZERO:
  131.                         default:
  132.                         {
  133.                                 nAsrStatus = LD_ASR_NONE;
  134.                                 break;
  135.                         }
  136.                 }
  137.         }  
  138. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:311826 发表于 2018-4-20 15:31 | 只看该作者
你好,这个芯片和stm32的接线方法有吗?不胜感激啊
回复

使用道具 举报

板凳
ID:459863 发表于 2019-3-27 19:57 | 只看该作者
Brokpet 发表于 2018-4-20 15:31
你好,这个芯片和stm32的接线方法有吗?不胜感激啊

请问您有接线方法了吗
回复

使用道具 举报

地板
ID:509983 发表于 2019-4-12 12:05 | 只看该作者
请问stm32和LD3320怎么连线?看不懂引脚
回复

使用道具 举报

5#
ID:537304 发表于 2019-5-14 15:21 | 只看该作者
Brokpet 发表于 2018-4-20 15:31
你好,这个芯片和stm32的接线方法有吗?不胜感激啊

请问您有接线方法了吗
回复

使用道具 举报

6#
ID:482448 发表于 2019-5-23 13:25 | 只看该作者
LD3320的接线引脚很简单,使用SPI协议控制的,NSS、SCK、MOSI、MISO这四根线是属于SPI接线,SPI的IO可以在芯片数据手册上可以看到,其余的IRQ、WR和RST接普通IO口,IRQ接外部中断接口
回复

使用道具 举报

7#
ID:546190 发表于 2019-5-25 15:20 | 只看该作者
萌新求解!这是烧在STM32里还是LD3320里?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表