找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 12277|回复: 7
收起左侧

基于51单片机的LD3320的例程(口令模式+IO口控制程序)

  [复制链接]
ID:470616 发表于 2019-1-19 16:42 | 显示全部楼层 |阅读模式
1、本工程采用 KEIL4 版本建立

2、本工程为口令模式+IO口控制方式,每次识别都需要喊“小杰”然后才可以喊其他二级的口令,另外IO口的输出可以查看程序PAx的端口利用情况

V0.7 语音识别程序:口令模式+IO口控制
本工程采用keil 4建立,如您打不开,可参考以下格式进行工程建立。
0.png

单片机源程序如下:
  1. /***************************飞音云电子****************************
  2. **  工程名称:YS-V0.7语音识别模块驱动程序
  3. **        CPU: STC11L08XE
  4. **        晶振:22.1184MHZ
  5. **        波特率:9600 bit/S
  6. **        配套产品信息:YS-V0.7语音识别开发板
  7. **  作者:zdings

  8. **  说明:口令模式+IO控制: 即每次识别时都需要说“小杰”这个口令 ,才能够进行下一级的识别
  9. /***************************飞音云电子******************************/
  10. #include "config.h"
  11. /************************************************************************************/
  12. //        nAsrStatus 用来在main主程序中表示程序运行的状态,不是LD3320芯片内部的状态寄存器
  13. //        LD_ASR_NONE:                表示没有在作ASR识别
  14. //        LD_ASR_RUNING:                表示LD3320正在作ASR识别中
  15. //        LD_ASR_FOUNDOK:                表示一次识别流程结束后,有一个识别结果
  16. //        LD_ASR_FOUNDZERO:        表示一次识别流程结束后,没有识别结果
  17. //        LD_ASR_ERROR:                表示一次识别流程中LD3320芯片内部出现不正确的状态
  18. /***********************************************************************************/
  19. uint8 idata nAsrStatus=0;       
  20. void MCU_init();
  21. void ProcessInt0(); //识别处理函数
  22. void  delay(unsigned long uldata);
  23. void         User_handle(uint8 dat);//用户执行操作函数
  24. void Led_test(void);//单片机工作指示
  25. void Delay200ms();
  26. uint8_t G0_flag=DISABLE;//运行标志,ENABLE:运行。DISABLE:禁止运行
  27. sbit LED=P4^2;//信号指示灯
  28. //应用IO口定义 (模块标注 P2)
  29. sbit PA1=P4^1; //对应板上标号 P4.1
  30. sbit PA2=P2^7;  //对应板上标号 P2.7
  31. sbit PA3=P2^6;  //.....
  32. sbit PA4=P2^5;  //.....
  33. sbit PA5=P2^4;  //.....
  34. sbit PA6=P2^3;  //.....
  35. sbit PA7=P3^3;  //对应板上标号 IT1
  36. sbit PA8=P3^4;  //对应板上标号 T0


  37. /***********************************************************
  38. * 名    称: void  main(void)
  39. * 功    能: 主函数        程序入口
  40. * 入口参数:  
  41. * 出口参数:
  42. * 说    明:                                          
  43. * 调用方法:
  44. **********************************************************/
  45. void  main(void)
  46. {
  47.         uint8 idata nAsrRes;
  48.         uint8 i=0;
  49.         Led_test();
  50.         MCU_init();
  51.         LD_Reset();
  52.         UartIni(); /*串口初始化*/
  53.         nAsrStatus = LD_ASR_NONE;                //        初始状态:没有在作ASR
  54.        
  55.         #ifdef TEST       
  56.     PrintCom("一级口令:小杰\r\n"); /*text.....*/
  57.         PrintCom("二级口令:1、代码测试\r\n"); /*text.....*/
  58.         PrintCom("        2、开发板验证\r\n"); /*text.....*/
  59.         PrintCom("        3、开灯\r\n"); /*text.....*/
  60.         PrintCom("        4、关灯\r\n"); /*text.....*/
  61.         PrintCom("  5、北京\r\n"); /*text.....*/
  62.         PrintCom("        6、上海\r\n"); /*text.....*/
  63.         PrintCom("        7、广州\r\n"); /*text.....*/
  64.         #endif

  65.         while(1)
  66.         {
  67.                 switch(nAsrStatus)
  68.                 {
  69.                         case LD_ASR_RUNING:
  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.                                 break;
  80.                         }
  81.                         case LD_ASR_FOUNDOK: /*        一次ASR识别流程结束,去取ASR识别结果*/
  82.                         {                               
  83.                                 nAsrRes = LD_GetResult();                /*获取结果*/
  84.                                 User_handle(nAsrRes);//用户执行函数
  85.                                 nAsrStatus = LD_ASR_NONE;
  86.                                 break;
  87.                         }
  88.                         case LD_ASR_FOUNDZERO:
  89.                         default:
  90.                         {
  91.                                 nAsrStatus = LD_ASR_NONE;
  92.                                 break;
  93.                         }
  94.                 }// switch                                
  95.         }// while

  96. }
  97. /***********************************************************
  98. * 名    称:          LED灯测试
  99. * 功    能: 单片机是否工作指示
  100. * 入口参数: 无
  101. * 出口参数:无
  102. * 说    明:                                          
  103. **********************************************************/
  104. void Led_test(void)
  105. {
  106.         LED=~ LED;
  107.         Delay200ms();
  108.         LED=~ LED;
  109.         Delay200ms();
  110.         LED=~ LED;
  111.         Delay200ms();
  112.         LED=~ LED;
  113.         Delay200ms();
  114.         LED=~ LED;
  115.         Delay200ms();
  116.         LED=~ LED;
  117. }
  118. /***********************************************************
  119. * 名    称: void MCU_init()
  120. * 功    能: 单片机初始化
  121. * 入口参数:  
  122. * 出口参数:
  123. * 说    明:                                          
  124. * 调用方法:
  125. **********************************************************/
  126. void MCU_init()
  127. {
  128.         P0 = 0xff;
  129.         P1 = 0xff;
  130.         P2 = 0xff;
  131.         P3 = 0xff;
  132.         P4 = 0xff;
  133.         LD_MODE = 0;                //        设置MD管脚为低,并行模式读写
  134.         IE0=1;
  135.         EX0=1;
  136.         EA=1;
  137. }
  138. /***********************************************************
  139. * 名    称:        延时函数
  140. * 功    能:
  141. * 入口参数:  
  142. * 出口参数:
  143. * 说    明:                                          
  144. * 调用方法:
  145. **********************************************************/
  146. void Delay200us()                //@22.1184MHz
  147. {
  148.         unsigned char i, j;
  149.         _nop_();
  150.         _nop_();
  151.         i = 5;
  152.         j = 73;
  153.         do
  154.         {
  155.                 while (--j);
  156.         } while (--i);
  157. }

  158. void  delay(unsigned long uldata)
  159. {
  160.         unsigned int j  =  0;
  161.         unsigned int g  =  0;
  162.         while(uldata--)
  163.         Delay200us();
  164. }

  165. void Delay200ms()                //@22.1184MHz
  166. {
  167.         unsigned char i, j, k;

  168.         i = 17;
  169.         j = 208;
  170.         k = 27;
  171.         do
  172.         {
  173.                 do
  174.                 {
  175.                         while (--k);
  176.                 } while (--j);
  177.         } while (--i);
  178. }

  179. /***********************************************************
  180. * 名    称: 中断处理函数
  181. * 功    能:
  182. * 入口参数:  
  183. * 出口参数:
  184. * 说    明:                                          
  185. * 调用方法:
  186. **********************************************************/
  187. void ExtInt0Handler(void) interrupt 0  
  188. {        
  189.         ProcessInt0();                                /*        LD3320 送出中断信号,包括ASR和播放MP3的中断,需要在中断处理函数中分别处理*/
  190. }
  191. /***********************************************************
  192. * 名    称:用户执行函数
  193. * 功    能:识别成功后,执行动作可在此进行修改
  194. * 入口参数: 无
  195. * 出口参数:无
  196. * 说    明: 通过控制PAx端口的高低电平,从而控制外部继电器的通断                                         
  197. **********************************************************/
  198. void         User_handle(uint8 dat)
  199. {
  200.      //UARTSendByte(dat);//串口识别码(十六进制)
  201.                  if(0==dat)
  202.                  {
  203.                           G0_flag=ENABLE;
  204.                                 LED=0;
  205.                  }
  206.                  else if(ENABLE==G0_flag)
  207.                  {       
  208.                                  G0_flag=DISABLE;
  209.                                 LED=1;
  210.                          switch(dat)                   /*对结果执行相关操作,客户修改*/
  211.                           {
  212.                                   case CODE_DMCS:                        /*命令“测试”*/
  213.                                                 PrintCom("“代码测试”命令识别成功\r\n"); //串口输出提示信息(可删除)
  214.                                                 PA1=0;//让PA1端口为低电平
  215.                                                                                                          break;
  216.                                         case CODE_KFBYZ:         /*命令“全开”*/
  217.                                                 PrintCom("“开发板验证”命令识别成功\r\n");//串口输出提示信息(可删除)
  218.                                                 PA2=0;//让PA2端口为低电平
  219.                                                                                                          break;
  220.                                         case CODE_KD:                /*命令“复位”*/                               
  221.                                                 PrintCom("“开灯”命令识别成功\r\n"); //串口输出提示信息(可删除)
  222.                                                 PA3=0;//让PA3端口为低电平
  223.                                                                                                         break;
  224.                                         case CODE_GD:                /*命令“复位”*/                               
  225.                                                 PrintCom("“关灯”命令识别成功\r\n"); //串口输出提示信息(可删除)
  226.                                                 PA3=1;//让PA3端口为高电平
  227.                                                                                                         break;
  228.                                         case CODE_BJ:                /*命令“复位”*/                               
  229.                                                 PrintCom("“北京”命令识别成功\r\n"); //串口输出提示信息(可删除)
  230.                                                 PA4=0;//让PA4端口为低电平
  231.                                                                                                         break;
  232.                                         case CODE_SH:                /*命令“复位”*/                               
  233.                                                 PrintCom("“上海”命令识别成功\r\n"); //串口输出提示信息(可删除)
  234.                                                 PA5=0;//让PA5端口为低电平
  235.                                                                                                         break;
  236.                                         case CODE_GZ:                /*命令“复位”*/                               
  237.                                                 PrintCom("“广州”命令识别成功\r\n"); //串口输出提示信息(可删除)
  238.                                                 PA6=0;//让PA6端口为低电平
  239.                                                                                                         break;                                                                                                                                                                                                                       
  240.                                                         default:PrintCom("请重新识别发口令\r\n"); //串口输出提示信息(可删除)
  241.                                                                                                         break;
  242.                                 }       
  243.                         }       
  244.                         else        
  245.                         {
  246.                                 PrintCom("请说出一级口令\r\n"); //串口输出提示信息(可删除)       
  247.                         }
  248. }         
复制代码
  1. /***************************飞音云电子****************************
  2. **  工程名称:YS-V0.7语音识别模块驱动程序
  3. **        CPU: STC11L08XE
  4. **        晶振:22.1184MHZ
  5. **        波特率:9600 bit/S
  6. **        配套产品信息:YS-V0.7语音识别开发板
  7. **  说明:口令模式: 即每次识别时都需要说“小杰”这个口令 ,才能够进行下一级的识别
  8. /***************************飞音云电子******************************/
  9. #include "config.h"

  10. extern void  delay(unsigned long uldata);

  11. uint8 idata ucRegVal;
  12. extern uint8 idata nAsrStatus;

  13. void ProcessInt0(void);

  14. /************************************************************************
  15. 功能描述:          复位LD模块
  16. 入口参数:         none
  17. 返 回 值:          none
  18. 其他说明:         none
  19. **************************************************************************/
  20. void LD_Reset()
  21. {
  22.         RSTB=1;
  23.         delay(1);
  24.         RSTB=0;
  25.         delay(1);
  26.         RSTB=1;

  27.         delay(1);
  28.         CSB=0;
  29.         delay(1);
  30.         CSB=1;
  31.         delay(1);
  32. }
  33. /************************************************************************
  34. 功能描述: LD模块命令初始化
  35. 入口参数: none
  36. 返 回 值: none
  37. 其他说明: 该函数为出厂配置,一般不需要修改;
  38.                                          有兴趣的客户可对照开发手册根据需要自行修改。
  39. **************************************************************************/
  40. void LD_Init_Common()
  41. {
  42.         LD_ReadReg(0x06);  
  43.         LD_WriteReg(0x17, 0x35);
  44.         delay(10);
  45.         LD_ReadReg(0x06);  

  46.         LD_WriteReg(0x89, 0x03);  
  47.         delay(5);
  48.         LD_WriteReg(0xCF, 0x43);   
  49.         delay(5);
  50.         LD_WriteReg(0xCB, 0x02);
  51.        
  52.         /*PLL setting*/
  53.         LD_WriteReg(0x11, LD_PLL_11);      

  54.         LD_WriteReg(0x1E,0x00);
  55.         LD_WriteReg(0x19, LD_PLL_ASR_19);
  56.         LD_WriteReg(0x1B, LD_PLL_ASR_1B);               
  57.   LD_WriteReg(0x1D, LD_PLL_ASR_1D);
  58.         delay(10);
  59.        
  60.     LD_WriteReg(0xCD, 0x04);
  61. //        LD_WriteReg(0x17, 0x4c);
  62.         delay(5);
  63.         LD_WriteReg(0xB9, 0x00);
  64.         LD_WriteReg(0xCF, 0x4F);
  65.         LD_WriteReg(0x6F, 0xFF);
  66. }

  67. /************************************************************************
  68. 功能描述:          LD模块 ASR功能初始化
  69. 入口参数:         none
  70. 返 回 值:          none
  71. 其他说明:         该函数为出厂配置,一般不需要修改;
  72.                                          有兴趣的客户可对照开发手册根据需要自行修改。
  73. **************************************************************************/
  74. void LD_Init_ASR()
  75. {
  76.         LD_Init_Common();
  77.         LD_WriteReg(0xBD, 0x00);
  78.         LD_WriteReg(0x17, 0x48);
  79.         delay( 10 );
  80.         LD_WriteReg(0x3C, 0x80);   
  81.         LD_WriteReg(0x3E, 0x07);
  82.         LD_WriteReg(0x38, 0xff);   
  83.         LD_WriteReg(0x3A, 0x07);
  84.   LD_WriteReg(0x40, 0);         
  85.         LD_WriteReg(0x42, 8);
  86.         LD_WriteReg(0x44, 0);   
  87.         LD_WriteReg(0x46, 8);
  88.         delay( 1 );
  89. }

  90. /************************************************************************
  91. 功能描述:         中断处理函数
  92. 入口参数:         none
  93. 返 回 值:          none
  94. 其他说明:        当LD模块接收到音频信号时,将进入该函数,
  95.                                                 判断识别是否有结果,如果没有从新配置寄
  96.             存器准备下一次的识别。
  97. **************************************************************************/
  98. void ProcessInt0(void)
  99. {
  100.         uint8 nAsrResCount=0;

  101.         EX0=0;
  102.         ucRegVal = LD_ReadReg(0x2B);
  103.         LD_WriteReg(0x29,0) ;
  104.         LD_WriteReg(0x02,0) ;
  105.         if((ucRegVal & 0x10) &&
  106.                 LD_ReadReg(0xb2)==0x21 &&
  107.                 LD_ReadReg(0xbf)==0x35)                        /*识别成功*/
  108.         {       
  109.                 nAsrResCount = LD_ReadReg(0xba);
  110.                 if(nAsrResCount>0 && nAsrResCount<=4)
  111.                 {
  112.                         nAsrStatus=LD_ASR_FOUNDOK;
  113.                 }
  114.                 else
  115.             {
  116.                         nAsrStatus=LD_ASR_FOUNDZERO;
  117.                 }       
  118.         }                                                                                                                         /*没有识别结果*/
  119.         else
  120.         {         
  121.                 nAsrStatus=LD_ASR_FOUNDZERO;
  122.         }
  123.                
  124.   LD_WriteReg(0x2b, 0);
  125.   LD_WriteReg(0x1C,0);/*写0:ADC不可用*/

  126.         LD_WriteReg(0x29,0) ;
  127.         LD_WriteReg(0x02,0) ;
  128.         LD_WriteReg(0x2B,  0);
  129.         LD_WriteReg(0xBA, 0);       
  130.         LD_WriteReg(0xBC,0);       
  131.         LD_WriteReg(0x08,1);         /*清除FIFO_DATA*/
  132.         LD_WriteReg(0x08,0);        /*清除FIFO_DATA后 再次写0*/


  133.         EX0=1;
  134. }

  135. /************************************************************************
  136. 功能描述:         运行ASR识别流程
  137. 入口参数:        none
  138. 返 回 值:  asrflag:1->启动成功, 0—>启动失败
  139. 其他说明:        识别顺序如下:
  140.                                                 1、RunASR()函数实现了一次完整的ASR语音识别流程
  141.                                                 2、LD_AsrStart() 函数实现了ASR初始化
  142.                                                 3、LD_AsrAddFixed() 函数实现了添加关键词语到LD3320芯片中
  143.                                                 4、LD_AsrRun()        函数启动了一次ASR语音识别流程                                       
  144.                                                 任何一次ASR识别流程,都需要按照这个顺序,从初始化开始
  145. **************************************************************************/
  146. uint8 RunASR(void)
  147. {
  148.         uint8 i=0;
  149.         uint8 asrflag=0;
  150.         for (i=0; i<5; i++)                        //        防止由于硬件原因导致LD3320芯片工作不正常,所以一共尝试5次启动ASR识别流程
  151.         {
  152.                 LD_AsrStart();
  153.                 delay(50);
  154.                 if (LD_AsrAddFixed()==0)
  155.                 {
  156.                         LD_Reset();                        //        LD3320芯片内部出现不正常,立即重启LD3320芯片
  157.                         delay(50);                        //        并从初始化开始重新ASR识别流程
  158.                         continue;
  159.                 }
  160.                 delay(10);
  161.                 if (LD_AsrRun() == 0)
  162.                 {
  163.                         LD_Reset();                        //        LD3320芯片内部出现不正常,立即重启LD3320芯片
  164.                         delay(50);                        //        并从初始化开始重新ASR识别流程
  165.                         continue;
  166.                 }
  167.                 asrflag=1;
  168.                 break;                                        //        ASR流程启动成功,退出当前for循环。开始等待LD3320送出的中断信号
  169.         }

  170.         return asrflag;
  171. }
  172. /************************************************************************
  173. 功能描述:  检测LD模块是否空闲
  174. 入口参数:        none
  175. 返 回 值:         flag:1-> 空闲
  176. 其他说明:        none
  177. **************************************************************************/
  178. uint8 LD_Check_ASRBusyFlag_b2()
  179. {
  180.         uint8 j;
  181.         uint8 flag = 0;
  182.         for (j=0; j<10; j++)
  183.         {
  184.                 if (LD_ReadReg(0xb2) == 0x21)
  185.                 {
  186.                         flag = 1;
  187.                         break;
  188.                 }
  189.                 delay(10);               
  190.         }
  191.         return flag;
  192. }
  193. /************************************************************************
  194. 功能描述:         启动ASR
  195. 入口参数:        none
  196. 返 回 值:         none
  197. 其他说明:        none
  198. **************************************************************************/
  199. void LD_AsrStart()
  200. {
  201.         LD_Init_ASR();
  202. }
  203. /************************************************************************
  204. 功能描述:         运行ASR
  205. 入口参数:        none
  206. 返 回 值:         1:启动成功
  207. 其他说明:        none
  208. **************************************************************************/
  209. uint8 LD_AsrRun()
  210. {
  211.         EX0=0;
  212.         LD_WriteReg(0x35, MIC_VOL);
  213.         LD_WriteReg(0x1C, 0x09);
  214.         LD_WriteReg(0xBD, 0x20);
  215.         LD_WriteReg(0x08, 0x01);
  216.         delay( 1 );
  217.         LD_WriteReg(0x08, 0x00);
  218.         delay( 1 );

  219.         if(LD_Check_ASRBusyFlag_b2() == 0)
  220.         {
  221.                 return 0;
  222.         }
  223. //        LD_WriteReg(0xB6, 0xa); //识别时间         1S
  224. //        LD_WriteReg(0xB5, 0x1E); //背景音段时间 300ms
  225. //        LD_WriteReg(0xB8, 10); //结束时间

  226. //        LD_WriteReg(0x1C, 0x07); //配置双通道音频信号做为输入信号
  227.         LD_WriteReg(0x1C, 0x0b); //配置麦克风做为输入信号


  228.         LD_WriteReg(0xB2, 0xff);
  229.         delay( 1);       
  230.         LD_WriteReg(0x37, 0x06);
  231.         delay( 1 );
  232.     LD_WriteReg(0x37, 0x06);
  233.                 delay( 5 );
  234.         LD_WriteReg(0x29, 0x10);
  235.        
  236.         LD_WriteReg(0xBD, 0x00);
  237.         EX0=1;
  238.         return 1;
  239. }
  240. /************************************************************************
  241. 功能描述: 向LD模块添加关键词
  242. 入口参数: none
  243. 返 回 值: flag:1->添加成功
  244. 其他说明: 用户修改.
  245.                                          1、根据如下格式添加拼音关键词,同时注意修改sRecog 和pCode 数组的长度
  246.                                          和对应变了k的循环置。拼音串和识别码是一一对应的。
  247.                                          2、开发者可以学习"语音识别芯片LD3320高阶秘籍.pdf"中
  248.            关于垃圾词语吸收错误的用法,来提供识别效果。
  249.                                          3、”xiao jie “ 为口令,故在每次识别时,必须先发一级口令“小捷”
  250. **************************************************************************/
  251. uint8 LD_AsrAddFixed()
  252. {
  253.         uint8 k, flag;
  254.         uint8 nAsrAddLength;
  255.         #define DATE_A 8   /*数组二维数值*/
  256.         #define DATE_B 20                /*数组一维数值*/
  257.         uint8 code sRecog[DATE_A][DATE_B] = {
  258.                                                                                                                                                                 "xiao jie",\               
  259.                                                                                                                                                                 "kai fa ban yan zheng",\
  260.                                                                                                                                                                  "dai ma ce shi",\
  261.                                                                                                                                                                  "kai deng",\
  262.                                                                                                                                                                  "guan deng",\
  263.                                                                                                                                                                  "bei jing",\
  264.                                                                                                                                                                  "shang hai",\
  265.                                                                                                                                                                  "guang zhou"
  266.                                                                                                                                                         };        /*添加关键词,用户修改*/
  267.         uint8 code pCode[DATE_A] = {
  268.                                                                                                                         CODE_CMD,\
  269.                                                                                                                         CODE_KFBYZ,\
  270.                                                                                                                         CODE_DMCS,\
  271.                                                                                                                         CODE_KD,\
  272.                                                                                                                         CODE_GD,\
  273.                                                                                                                         CODE_BJ,\
  274.                                                                                                                         CODE_SH,\
  275.                                                                                                                         CODE_GZ
  276.                                                                                                                  };        /*添加识别码,用户修改*/       
  277.         flag = 1;
  278.         for (k=0; k<DATE_A; k++)
  279. ……………………

  280. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
V0.7 语音识别程序:口令模式 IO口控制.rar (151.14 KB, 下载次数: 147)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:517770 发表于 2019-4-21 14:10 | 显示全部楼层
非常好!!
回复

使用道具 举报

ID:642991 发表于 2019-11-16 08:28 | 显示全部楼层
what particular LD3320 development did you use?
回复

使用道具 举报

ID:562150 发表于 2019-11-18 12:31 来自手机 | 显示全部楼层
51可以识别IO口不同的电平从而切换功能吗,谢谢
回复

使用道具 举报

ID:649351 发表于 2019-11-26 20:47 | 显示全部楼层
请问下您这里一二级口令之间的衔接是怎么处理的呢?
回复

使用道具 举报

ID:638594 发表于 2020-1-24 17:25 | 显示全部楼层
我想问一下各位,为什么我显示不出任何反应呢,开机的时候闪灯几下后,就一切不动,一级口令也呼唤了无数句,就差念经给他听了,还是识别不了,给大家看看我按程序接的线,电源,地线,CS,MO,RET。
就一共5根。请各位指教指教

d4e64e76a2705341fc48501a0c08dc1.jpg
回复

使用道具 举报

ID:869923 发表于 2020-12-29 01:57 | 显示全部楼层
请问楼主,成功了么,我的也是没反应
回复

使用道具 举报

ID:800086 发表于 2020-12-29 08:57 | 显示全部楼层
之前我也做过,对环境要求高,语音识别低。可以学习一下
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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