找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3303|回復(fù): 0
收起左側(cè)

STM32驅(qū)動LD3320源程序

[復(fù)制鏈接]
ID:198253 發(fā)表于 2017-5-8 17:52 | 顯示全部樓層 |閱讀模式
ld3320單片機(jī)程序
1、STM32的用戶 可以直接 在工程里面 添加如下4個文件1》LD3320_main.c  2》LDChip.c  3》Reg_RW.c 4》delay.c

2、51的用戶同時可以根據(jù)以上操作來做相關(guān)的修改。
0.png

完整的單片機(jī)驅(qū)動程序源碼下載:
基于STM32 的 LD3320基本驅(qū)動程序.zip (62.69 KB, 下載次數(shù): 30)




部分代碼預(yù)覽:
  1. /************************************************************************************
  2. **        版權(quán)所有:Copyright (c) 2005 - 2010 ICRoute INC.
  3. ** 硬件說明:STM32f103vet6  8MHZ  內(nèi)部時鐘為72MHZ
  4. **                                          LD3320 有源晶振 12MHZ  不同的晶振請修改LDChip.h 中的定義值(#define CLK_IN  12)
  5. ** 軟件說明:并行讀寫寄存器方式,如采用其他方式即修改Reg_RW.c 文件即可!
  6. ** 修改者:  http://shop64790118.taobao.com/
  7. ** 時間:2011.10.15
  8. **
  9. ************************************************************************************/

  10. #include  <stm32f10x_conf.h>
  11. #include  <stm32f10x.h>

  12. #include "LDchip.h"
  13. #include "Reg_RW.h"

  14. #include "delay.h"
  15. #include  "gui_include.h"

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

  25. #define DEMO_SOUND_SIZE 1235

  26. void LD3320_Init(void);

  27. uint8 RunASR(void);
  28. void ProcessInt0(void);
  29. void LD3320_EXTI_Cfg(void);
  30. void LD3320_NVIC_Cfg(void);

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

  54. void  LD3320_main(void)
  55. {

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

  65.                                                                                         nAsrStatus=LD_ASR_RUNING;
  66.                                                                                         if (RunASR()==0)        //        啟動一次ASR識別流程:ASR初始化,ASR添加關(guān)鍵詞語,啟動ASR運(yùn)算
  67.                                                                                         {               
  68.                                                                                                 nAsrStatus = LD_ASR_ERROR;
  69.                                                                                         }
  70.                                                                                         break;

  71.                         case LD_ASR_FOUNDOK:

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

  83.                  ld3320_exti =0;
  84.                  ProcessInt0();               
  85.                 }

  86.                   OSTimeDlyHMSM(0,0,0,50);


  87. …………限于本文篇幅 余下代碼請從51黑帖子頂部下載附件…………
復(fù)制代碼


回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表