300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > LD3320 语音识别模块 开发板集成STC单片机_笔记1

LD3320 语音识别模块 开发板集成STC单片机_笔记1

时间:2018-12-27 18:48:43

相关推荐

LD3320 语音识别模块 开发板集成STC单片机_笔记1

本文章为本人接触LD3320的笔记,供新手参考使用;

目录

硬件及其连接

软件与环境

Keil uVision5

STC-ISP

环境搭建

程序修改及其描述

硬件及其连接

连接 USB 下载器,接上 GND、RXD、TXD、5V,注意 RXD/TXD 必须交叉连接

软件与环境

Keil uVision5

STC-ISP

环境搭建

STCMCU采用的是STC11L32XE

问题描述:在 keil5 中,没有STC系列的芯片;

解决方法:参考文章“KEIL中怎样添加STC系列单片机”

程序修改及其描述

下面将基于开关灯的功能,对例程进行修改,并对一些程序进行简单的说明。

在 LDChip.c 文件中,有以下代码

uint8 LD_AsrAddFixed(){uint8 k, flag;uint8 nAsrAddLength;#define DATE_A 8 /*数组二维数值,有八行设置*/#define DATE_B 30/*数组一维数值*/uint8 code sRecog[DATE_A][DATE_B] = {"xiao jie",\"kai fa ban yan zheng",\"dai ma ce shi",\"deng lai",\"deng qu",\"deng shan shuo",\"you zhuan",\"zan ting"};/*添加关键词,用户修改*/uint8 code pCode[DATE_A] = {CODE_CMD,\CODE_KFBYZ,\CODE_DMCS,\CODE_KD,\CODE_GD,\CODE_SS,\CODE_YZ,\CODE_ZT};/*添加识别码,用户修改*/flag = 1;for (k=0; k<DATE_A; k++){if(LD_Check_ASRBusyFlag_b2() == 0){flag = 0;break;}LD_WriteReg(0xc1, pCode[k] );LD_WriteReg(0xc3, 0 );LD_WriteReg(0x08, 0x04);delay(1);LD_WriteReg(0x08, 0x00);delay(1);for (nAsrAddLength=0; nAsrAddLength<DATE_B; nAsrAddLength++){if (sRecog[k][nAsrAddLength] == 0)break;LD_WriteReg(0x5, sRecog[k][nAsrAddLength]);}LD_WriteReg(0xb9, nAsrAddLength);LD_WriteReg(0xb2, 0xff);LD_WriteReg(0x37, 0x04);}return flag;}

功能描述:向LD3320模块添加关键词

操作方法:

根据修改关键词的个位数n定义DATE_A的数值n,如,例程中有8个关键词则DATE_A数值为8;根据最长关键词的字节长定义DATE_B的数值m;//这里笔者也不是很会,看编译结果来定吧修改关键词就是修改双引号中的拼音,如,开灯->"kai deng"完成关键词的修改后,修改pCode,即识别码,将识别码的行数与关键词对应起来;

如果有修改识别码的情况下,需要分别在文件"main.c""LDChip.h"处同步修改;//其中"LDChip.h"中有识别码在MCU中的地址,该地方笔者不是很会

最后在"main.c"文件中,对 User_handle() 进行相关事件即可完成开关灯等指令;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。