找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 3233|回复: 0
打印 上一主题 下一主题
收起左侧

STM32驱动LD3320源程序

[复制链接]
跳转到指定楼层
楼主
ld3320单片机程序
1、STM32的用户 可以直接 在工程里面 添加如下4个文件1》LD3320_main.c  2》LDChip.c  3》Reg_RW.c 4》delay.c

2、51的用户同时可以根据以上操作来做相关的修改。


完整的单片机驱动程序源码下载:
基于STM32 的 LD3320基本驱动程序.zip (62.69 KB, 下载次数: 30)




部分代码预览:
  1. /************************************************************************************
  2. **        版权所有:Copyright (c) 2005 - 2010 ICRoute INC.
  3. ** 硬件说明:STM32f103vet6  8MHZ  内部时钟为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主程序中表示程序运行的状态,不是LD3320芯片内部的状态寄存器
  18. //        LD_ASR_NONE:                表示没有在作ASR识别
  19. //        LD_ASR_RUNING:                表示LD3320正在作ASR识别中
  20. //        LD_ASR_FOUNDOK:                表示一次识别流程结束后,有一个识别结果
  21. //        LD_ASR_FOUNDZERO:        表示一次识别流程结束后,没有识别结果
  22. //        LD_ASR_ERROR:                表示一次识别流程中LD3320芯片内部出现不正确的状态
  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;         //中断标志信号,为1是代表中断产生。以下采用查询方式。
  32. /************************************************************************************/
  33. //        这个示范程序是基于STC10L08XE编译的完整地,可以执行的程序
  34. //        实现了从数组中播放的功能
  35. //  
  36. //  verygood_withHead.mp3(verygood_withoutHead)是一段MP3格式的声音文件,播放内容为英文单词"very good"
  37. //        demosound.h 中定义了数组 bpDemoSound[],
  38. //  数组的内容就是 verygood_withHead.mp3(verygood_withoutHead)文件的内容
  39. //  用户可以用16进制阅读器(比如 UltraEdit )打开verygood_withHead.mp3文件和 bpDemoSound 数组相对照
  40. //
  41. //        关于两个MP3文件的差异:  
  42. //        这两个MP3文件只差有没有ID3文件头,MP3的数据都是一样的,
  43. //        ID3文件头传入LD芯片与否不影响播放
  44. //  用Windows自带的MediaPlayer播放没有ID3头的vertygood_withoutHead.mp3 后,会自动加上ID3文件头
  45. //  PlayDemoSound_Once/PlayDemoSound_Continue 函数就是把 bpDemoSound数组中的数据依次传入LD3320芯片进行播放
  46. //
  47. //  与LD3320芯片有关的函数功能,都在"开发手册.pdf"中有详细说明
  48. //        请开发者对照"开发手册.pdf“阅读
  49. //        
  50. //        开发者在学习LD3320开始时,可以直接把在这个main函数拷贝到自己单片机中编译运行
  51. //        
  52. //        当然,用户要根据自己实际的单片机去修改 mcu_init ,以及对应的管脚连接的定义,中断定义
  53. /************************************************************************************/

  54. void  LD3320_main(void)
  55. {

  56.         nAsrStatus = LD_ASR_NONE;                //        初始状态:没有在作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添加关键词语,启动ASR运算
  67.                                                                                         {               
  68.                                                                                                 nAsrStatus = LD_ASR_ERROR;
  69.                                                                                         }
  70.                                                                                         break;

  71.                         case LD_ASR_FOUNDOK:

  72.                                                                                         LD_GetResult();        //        一次ASR识别流程结束,去取ASR识别结果                                
  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) {        /*采用查询方式进入中断处理*/

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

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


  87. …………限于本文篇幅 余下代码请从51黑帖子顶部下载附件…………
复制代码


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

举报

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

本版积分规则

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

Powered by 单片机教程网

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