久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 11666|回復(fù): 12
打印 上一主題 下一主題
收起左側(cè)

stm32+LD3320語(yǔ)音識(shí)別開(kāi)發(fā)板資料(含源碼,數(shù)據(jù)手冊(cè),開(kāi)發(fā)手冊(cè)等)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
LD3320語(yǔ)音模塊學(xué)習(xí)資料 基于STM32


1、STM32的用戶 可以直接 在工程里面 添加如下4個(gè)文件1》LD3320_main.c  2》LDChip.c  3》Reg_RW.c 4》delay.c

2、51的用戶同時(shí)可以根據(jù)以上操作來(lái)做相關(guān)的修改。

單片機(jī)源程序如下:
  1. /************************************************************************************
  2. **        版權(quán)所有:Copyright (c) 2005 - 2010 ICRoute INC.
  3. ** 硬件說(shuō)明:STM32f103vet6  8MHZ  內(nèi)部時(shí)鐘為72MHZ
  4. **                                          LD3320 有源晶振 12MHZ  不同的晶振請(qǐng)修改LDChip.h 中的定義值(#define CLK_IN  12)
  5. ** 軟件說(shuō)明:并行讀寫寄存器方式,如采用其他方式即修改Reg_RW.c 文件即可!
  6. ************************************************************************************/

  7. #include  <stm32f10x_conf.h>
  8. #include  <stm32f10x.h>

  9. #include "LDchip.h"
  10. #include "Reg_RW.h"

  11. #include "delay.h"
  12. #include  "gui_include.h"

  13. /************************************************************************************/
  14. //        nAsrStatus 用來(lái)在main主程序中表示程序運(yùn)行的狀態(tài),不是LD3320芯片內(nèi)部的狀態(tài)寄存器
  15. //        LD_ASR_NONE:                表示沒(méi)有在作ASR識(shí)別
  16. //        LD_ASR_RUNING:                表示LD3320正在作ASR識(shí)別中
  17. //        LD_ASR_FOUNDOK:                表示一次識(shí)別流程結(jié)束后,有一個(gè)識(shí)別結(jié)果
  18. //        LD_ASR_FOUNDZERO:        表示一次識(shí)別流程結(jié)束后,沒(méi)有識(shí)別結(jié)果
  19. //        LD_ASR_ERROR:                表示一次識(shí)別流程中LD3320芯片內(nèi)部出現(xiàn)不正確的狀態(tài)
  20. /***********************************************************************************/
  21. uint8 nAsrStatus=0;       

  22. #define DEMO_SOUND_SIZE 1235

  23. void LD3320_Init(void);

  24. uint8 RunASR(void);
  25. void ProcessInt0(void);
  26. void LD3320_EXTI_Cfg(void);
  27. void LD3320_NVIC_Cfg(void);

  28. u8 ld3320_exti=0;         //中斷標(biāo)志信號(hào),為1是代表中斷產(chǎn)生。以下采用查詢方式。
  29. /************************************************************************************/
  30. //        這個(gè)示范程序是基于STC10L08XE編譯的完整地,可以執(zhí)行的程序
  31. //        實(shí)現(xiàn)了從數(shù)組中播放的功能
  32. //  
  33. //  verygood_withHead.mp3(verygood_withoutHead)是一段MP3格式的聲音文件,播放內(nèi)容為英文單詞"very good"
  34. //        demosound.h 中定義了數(shù)組 bpDemoSound[],
  35. //  數(shù)組的內(nèi)容就是 verygood_withHead.mp3(verygood_withoutHead)文件的內(nèi)容
  36. //  用戶可以用16進(jìn)制閱讀器(比如 UltraEdit )打開(kāi)verygood_withHead.mp3文件和 bpDemoSound 數(shù)組相對(duì)照
  37. //
  38. //        關(guān)于兩個(gè)MP3文件的差異:  
  39. //        這兩個(gè)MP3文件只差有沒(méi)有ID3文件頭,MP3的數(shù)據(jù)都是一樣的,
  40. //        ID3文件頭傳入LD芯片與否不影響播放
  41. //  用Windows自帶的MediaPlayer播放沒(méi)有ID3頭的vertygood_withoutHead.mp3 后,會(huì)自動(dòng)加上ID3文件頭
  42. //  PlayDemoSound_Once/PlayDemoSound_Continue 函數(shù)就是把 bpDemoSound數(shù)組中的數(shù)據(jù)依次傳入LD3320芯片進(jìn)行播放
  43. //
  44. //  與LD3320芯片有關(guān)的函數(shù)功能,都在"開(kāi)發(fā)手冊(cè).pdf"中有詳細(xì)說(shuō)明
  45. //        請(qǐng)開(kāi)發(fā)者對(duì)照"開(kāi)發(fā)手冊(cè).pdf“閱讀
  46. //       
  47. //        開(kāi)發(fā)者在學(xué)習(xí)LD3320開(kāi)始時(shí),可以直接把在這個(gè)main函數(shù)拷貝到自己?jiǎn)纹瑱C(jī)中編譯運(yùn)行
  48. //       
  49. //        當(dāng)然,用戶要根據(jù)自己實(shí)際的單片機(jī)去修改 mcu_init ,以及對(duì)應(yīng)的管腳連接的定義,中斷定義
  50. /************************************************************************************/

  51. void  LD3320_main(void)
  52. {

  53.         nAsrStatus = LD_ASR_NONE;                //        初始狀態(tài):沒(méi)有在作ASR
  54.         while(1)
  55.         {
  56.         switch(nAsrStatus)
  57.                 {
  58.                         case LD_ASR_RUNING:
  59.                         case LD_ASR_ERROR:               
  60.                                                                                                 break;
  61.                         case LD_ASR_NONE:

  62.                                                                                         nAsrStatus=LD_ASR_RUNING;
  63.                                                                                         if (RunASR()==0)        //        啟動(dòng)一次ASR識(shí)別流程:ASR初始化,ASR添加關(guān)鍵詞語(yǔ),啟動(dòng)ASR運(yùn)算
  64.                                                                                         {               
  65.                                                                                                 nAsrStatus = LD_ASR_ERROR;
  66.                                                                                         }
  67.                                                                                         break;

  68.                         case LD_ASR_FOUNDOK:

  69.                                                                                         LD_GetResult();        //        一次ASR識(shí)別流程結(jié)束,去取ASR識(shí)別結(jié)果                               
  70.                                                                                         nAsrStatus = LD_ASR_NONE;
  71.                                                                                         break;
  72.                        
  73.                         case LD_ASR_FOUNDZERO:
  74.                         default:
  75.                                                                 nAsrStatus = LD_ASR_NONE;
  76.                                                                 break;
  77.                         }
  78.        
  79.           if(ld3320_exti !=0) {        /*采用查詢方式進(jìn)入中斷處理*/

  80.                  ld3320_exti =0;
  81.                  ProcessInt0();               
  82.                 }

  83.                   OSTimeDlyHMSM(0,0,0,50);
  84.        
  85.        
  86.         }// while

  87. }
  88. /************************************************************************
  89. 功能描述:
  90. 調(diào)用函數(shù):
  91. 入口參數(shù):
  92. 返回函數(shù):
  93. **************************************************************************/
  94. void LD3320_Init(void)
  95. {
  96.         LD3320_GPIO_config();       
  97.         LD3320_EXTI_Cfg();
  98.   LD3320_NVIC_Cfg();
  99.         LD_reset();
  100. }
  101. /************************************************************************
  102. 功能描述:
  103. 調(diào)用函數(shù):
  104. 入口參數(shù):
  105. 返回函數(shù):
  106. **************************************************************************/
  107. void  LD3320_delay(unsigned long uldata)
  108. {
  109.         unsigned int j  =  0;
  110.         unsigned int g  =  0;
  111.         for (j=0;j<5;j++)
  112.         {
  113.                 for (g=0;g<uldata;g++)
  114.                 {
  115.                         delay_us(120);
  116.                 }
  117.         }
  118. }

  119. /*********************************************************************
  120. //為了消除編譯時(shí)的 警告 *** WARNING L15: MULTIPLE CALL TO SEGMENT
  121. //把在中斷函數(shù)中需要調(diào)用的函數(shù)重新復(fù)制并命名
  122. //消除警告 Warning L15,并且避免由于函數(shù)重入可能帶來(lái)的隱藏Bug
  123. *********************************************************************/
  124. void  LD3320_delay_2(unsigned long uldata)
  125. {
  126.         unsigned int j  =  0;
  127.         unsigned int g  =  0;
  128.         for (j=0;j<5;j++)
  129.         {
  130.                 for (g=0;g<uldata;g++)
  131.                 {
  132.                         delay_us(120);
  133.                 }
  134.         }
  135. }


  136. /************************************************************************************/
  137. //        RunASR()函數(shù)實(shí)現(xiàn)了一次完整的ASR語(yǔ)音識(shí)別流程
  138. //        LD_AsrStart() 函數(shù)實(shí)現(xiàn)了ASR初始化
  139. //        LD_AsrAddFixed() 函數(shù)實(shí)現(xiàn)了添加關(guān)鍵詞語(yǔ)到LD3320芯片中
  140. //        LD_AsrRun()        函數(shù)啟動(dòng)了一次ASR語(yǔ)音識(shí)別流程
  141. //
  142. //        任何一次ASR識(shí)別流程,都需要按照這個(gè)順序,從初始化開(kāi)始進(jìn)行
  143. /************************************************************************************/

  144. uint8 RunASR(void)
  145. {
  146.         uint8 i=0;
  147.         uint8 asrflag=0;
  148.         for (i=0; i<5; i++)                        //        防止由于硬件原因?qū)е翷D3320芯片工作不正常,所以一共嘗試5次啟動(dòng)ASR識(shí)別流程
  149.         {
  150.                 LD_AsrStart();                        //初始化ASR
  151.                 LD3320_delay(100);
  152.                 if (LD_AsrAddFixed()==0)        //添加關(guān)鍵詞語(yǔ)到LD3320芯片中
  153.                 {
  154.                         LD_reset();                        //        LD3320芯片內(nèi)部出現(xiàn)不正常,立即重啟LD3320芯片
  155.                         LD3320_delay(50);                        //        并從初始化開(kāi)始重新ASR識(shí)別流程
  156.                         continue;
  157.                 }

  158.                 LD3320_delay(10);

  159.                 if (LD_AsrRun() == 0)
  160.                 {
  161.                         LD_reset();                        //        LD3320芯片內(nèi)部出現(xiàn)不正常,立即重啟LD3320芯片
  162.                         LD3320_delay(50);                        //        并從初始化開(kāi)始重新ASR識(shí)別流程
  163.                         continue;
  164.                 }

  165.                 asrflag=1;
  166.                 break;                                        //        ASR流程啟動(dòng)成功,退出當(dāng)前for循環(huán)。開(kāi)始等待LD3320送出的中斷信號(hào)
  167.         }

  168.         return asrflag;
  169. }

  170. /************************************************************************
  171. 功能描述:                 STM32 嵌套中斷配置
  172. 調(diào)用函數(shù):
  173. 入口參數(shù):
  174. 返回函數(shù):
  175. **************************************************************************/
  176. void LD3320_NVIC_Cfg(void)
  177. {
  178.   NVIC_InitTypeDef NVIC_InitStructure;
  179.    
  180.   NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn;
  181.   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  182.   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  183.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  184.   NVIC_Init(&NVIC_InitStructure);

  185. }
  186. /************************************************************************
  187. 功能描述:         STM32 外部中斷和 IO口配置,利用外部中斷線1
  188. 調(diào)用函數(shù):
  189. 入口參數(shù):
  190. 返回函數(shù):
  191. **************************************************************************/
  192. void LD3320_EXTI_Cfg(void)
  193. {
  194.   EXTI_InitTypeDef EXTI_InitStructure;
  195.   GPIO_InitTypeDef GPIO_InitStructure;

  196.   /* Enable GPIOC clock */
  197.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
  198.   GPIO_InitStructure.GPIO_Pin =GPIO_Pin_1;
  199.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  200.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  201.   GPIO_Init(GPIOD, &GPIO_InitStructure);

  202.   GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPIO_PinSource1);
  203.   EXTI_InitStructure.EXTI_Line = EXTI_Line1;
  204.   EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  205.   EXTI_InitStructure.EXTI_Trigger =EXTI_Trigger_Falling;
  206. ……………………

  207. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:

3-LD3320參考文獻(xiàn)及文檔手冊(cè).7z

9.29 MB, 下載次數(shù): 250, 下載積分: 黑幣 -5

2-原理圖.7z

32.93 KB, 下載次數(shù): 207, 下載積分: 黑幣 -5

1-參考例程.7z

10.53 MB, 下載次數(shù): 267, 下載積分: 黑幣 -5

4-應(yīng)用文檔.7z

17.16 MB, 下載次數(shù): 180, 下載積分: 黑幣 -5

評(píng)分

參與人數(shù) 2黑幣 +70 收起 理由
zwj009 + 20 共享資料的黑幣獎(jiǎng)勵(lì)!
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏12 分享淘帖 頂2 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:409845 發(fā)表于 2018-10-29 08:52
4-應(yīng)用文檔.7z 分扣掉了,沒(méi)下載沒(méi)面

無(wú)效樓層,該帖已經(jīng)被刪除
地板
ID:231458 發(fā)表于 2019-5-5 09:41 | 只看該作者
謝謝分享!
回復(fù)

使用道具 舉報(bào)

5#
ID:237239 發(fā)表于 2019-5-8 19:44 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

6#
ID:571591 發(fā)表于 2019-9-24 22:47 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

7#
ID:630463 發(fā)表于 2019-10-26 14:03 | 只看該作者
謝謝大神
回復(fù)

使用道具 舉報(bào)

8#
ID:408363 發(fā)表于 2019-10-29 21:48 | 只看該作者
謝謝大神
回復(fù)

使用道具 舉報(bào)

9#
ID:84131 發(fā)表于 2019-11-7 20:04 | 只看該作者
最近正在做畢設(shè),很及時(shí)
回復(fù)

使用道具 舉報(bào)

10#
ID:498853 發(fā)表于 2019-12-30 23:44 | 只看該作者
謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

11#
ID:217068 發(fā)表于 2020-1-1 09:39 | 只看該作者

謝謝大神
回復(fù)

使用道具 舉報(bào)

12#
無(wú)效樓層,該帖已經(jīng)被刪除
13#
ID:714773 發(fā)表于 2020-3-24 14:45 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報(bào)

14#
ID:688466 發(fā)表于 2020-5-19 15:51 | 只看該作者
想問(wèn)一下,怎么把stm32+ld3320里的程序和stm32+esp8266+onennet的程序合并到一塊,不知道有沒(méi)有弄過(guò),
回復(fù)

使用道具 舉報(bào)

15#
無(wú)效樓層,該帖已經(jīng)被刪除
16#
無(wú)效樓層,該帖已經(jīng)被刪除
17#
ID:705517 發(fā)表于 2020-10-26 20:49 | 只看該作者
謝謝分享  想問(wèn)一下那個(gè)32和LD3320原理圖是不是直接用就可以 不需要stc10l08了
回復(fù)

使用道具 舉報(bào)

18#
無(wú)效樓層,該帖已經(jīng)被刪除
19#
無(wú)效樓層,該帖已經(jīng)被刪除
20#
ID:722412 發(fā)表于 2021-5-15 10:08 | 只看該作者
電路有問(wèn)題啊,仿真時(shí),解析電路一直出錯(cuò)
回復(fù)

使用道具 舉報(bào)

21#
無(wú)效樓層,該帖已經(jīng)被刪除
22#
無(wú)效樓層,該帖已經(jīng)被刪除

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区影院 | 午夜免费观看体验区 | 欧美影院 | 日韩www| 欧美不卡一区二区三区 | 免费日本视频 | 亚洲精品色 | 在线观看免费高清av | 在线免费观看毛片 | 日韩精品在线播放 | 91成人免费电影 | 亚洲成人免费网址 | 日韩成人免费av | 亚洲天堂一区二区 | 国产精品1区 | av网站在线播放 | 亚洲视频免费 | 五月天综合影院 | h视频在线免费看 | 国产精品国产成人国产三级 | 亚洲日韩中文字幕一区 | 爱高潮www亚洲精品 中文字幕免费视频 | 青青久草| 在线看亚洲 | 久久久久国 | 91精品国产一区二区三区 | 成人精品鲁一区一区二区 | 中文字幕一区二区三区四区 | 99在线资源| 特一级毛片 | 亚洲精选一区二区 | 狠狠亚洲 | 欧美区日韩区 | 亚洲热在线视频 | 网站国产 | 久草高清视频 | 日韩视频免费 | 国产精品高清一区二区三区 | 国产欧美日韩一区二区三区在线 | 亚洲欧美综合精品另类天天更新 | 网站黄色在线免费观看 |