硬件模块的二次开发——YS-LDV7语音模块的二次开发

本文档详细介绍了YS-LDV7语音模块的工作电压、通信方式以及基于STC11L08XE单片机的源码修改过程,包括如何通过KeiluVision4进行代码编辑,设置测试命令宏,修改关键词和识别码,以及在main.c中添加处理函数。此外,还阐述了模块程序的下载方法和调试步骤,如串口助手的使用和串口参数配置。
摘要由CSDN通过智能技术生成

1.YS-LDV7语音模块:

工作电压:5V
通信方式:串口通信
单片机型号:STC11L08XE

2.源码修改:

(1)使用 Keil uVision4 进行修改,打开 code:
在这里插入图片描述
(2)main.c:(此处省略部分代码)

#ifdef TEST			//不执行测试命令则去掉 TEST
PrintCom("一级口令:小杰\r\n"); /*text.....*/
PrintCom("二级口令:1、代码测试\r\n"); /*text.....*/
PrintCom("	2、开发板验证\r\n"); /*text.....*/
PrintCom("	3、开灯\r\n"); /*text.....*/
PrintCom("	4、关灯\r\n"); /*text.....*/
PrintCom("  5、北京\r\n"); /*text.....*/
PrintCom("	6、上海\r\n"); /*text.....*/
PrintCom("	7、广州\r\n"); /*text.....*/
#endif

#define TEST		 //测试命令

TEST为测试命令宏,添加TEST则运行其中代码,此处代码为向串口打印相应数据,不希望执行测试命令,则在#ifdef TEST处去掉TEST宏
(3)LDChip.c:修改关键词和识别码(此处省略部分代码)

uint8 LD_AsrAddFixed()
{

	#define DATE_A 50   /*数组二维数值*/				//关键词数量(可修改),建议不超过 50个
	#define DATE_B 70		/*数组一维数值*/			//关键词最长的长度(可修改),建议不长于 70
	uint8 code sRecog[DATE_A][DATE_B] = {
																				 "xiao jie",\		
																				 "kai fa ban yan zheng",\
																				 "dai ma ce shi",\
																				 "kai deng",\
																				 "guan deng",\
																				 "bei jing",\
																				 "shang hai",\
																				 "guang zhou"
																			};	/*添加关键词,用户修改*/
	uint8 code pCode[DATE_A] = {
															CODE_CMD,\
															CODE_KFBYZ,\
															CODE_DMCS,\
															CODE_KD,\
															CODE_GD,\
															CODE_BJ,\
															CODE_SH,\
															CODE_GZ
														 };	/*添加识别码,用户修改*/

添加内容为拼音输入方式,例如想添加“开灯”命令,则写入“kai deng”,每个汉字间的拼音用空格隔开;
所添加的识别码为预先定义好的宏定义常量值,同时必须和关键词一一对应,如上图所示,“dai ma ce shi”命令对应的识别码为CODE_DMCS
(4)LDChip.h:根据关键词修改相应识别码(此处省略部分代码)

//识别码客户修改处 
#define CODE_CMD  0x00   		//该命令码0x00用户不可进行修改。
#define CODE_DMCS	0x01		//代码测试
#define CODE_KFBYZ	0x02		//开发板验证
#define CODE_KD 0x04			//开灯
#define CODE_GD 0x05			//关灯
#define CODE_BJ 0x16			//关灯
#define CODE_SH 0x17			//上海
#define CODE_GZ	0x2f			//广州

(5)main.c:修改处理函数(此处省略部分代码)

switch(dat)		   /*对结果执行相关操作,客户可删除Printcom 串口输出语句替换为其他需要控制的代码*/
			  {
				  case CODE_DMCS:			/*命令“测试”*/
						PrintCom("“代码测试”命令识别成功\r\n"); /*text.....*/
													 break;
					case CODE_KFBYZ:	 /*命令“全开”*/
						PrintCom("“开发板验证”命令识别成功\r\n"); /*text.....*/
													 break;
					case CODE_KD:		/*命令“复位”*/				
						PrintCom("“开灯”命令识别成功\r\n"); /*text.....*/
													break;
					case CODE_GD:		/*命令“复位”*/				
						PrintCom("“关灯”命令识别成功\r\n"); /*text.....*/
													break;
					case CODE_BJ:		/*命令“复位”*/				
						PrintCom("“北京”命令识别成功\r\n"); /*text.....*/
													break;
					case CODE_SH:		/*命令“复位”*/				
						PrintCom("“上海”命令识别成功\r\n"); /*text.....*/
													break;
					case CODE_GZ:		/*命令“复位”*/				
						PrintCom("“广州”命令识别成功\r\n"); /*text.....*/
													break;
							default:PrintCom("请重新识别发口令\r\n"); /*text.....*/break;
				}

用户可以根据自己的使用情况在相对应的识别码后添加识别成功后的操作。那么在设备到某句话后就会执行相应的动作,实际上此段程序是判断识别到那个识别码然后执行相应的动作,属单片机的程序应用处理部分
(6)修改完成后检查是否能够正常编译:
在这里插入图片描述

3.模块调试:

(1)模块程序下载:
本模块的程序下载实际为 STC 单片机的程序下载方法,首先我们需要安装 USB 转 TTL 驱动(如已安装无需再安装),然后接好 USB 转 TTL,打开 STC-ISP:
在这里插入图片描述
①选择单片机型号
②选择相应串口号
③打开程序文件 > 打开源程序 > 打开obj文件夹 > 选择后缀.hex文件
④注意勾选“复位脚用作I/O口”,
⑤设置完毕后点击“下载/编程”,并冷启动
⑥冷启动完后,底部进度条会显示进度

(2)调试:
在这里插入图片描述①打开串口助手
②接收缓冲区选择“文本模式”
③选择相应串口号
④波特率选择 9600
⑤打开串口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值