您的位置:首页 > 新闻 > 会展 > 树莓派通过串口驱动LD3320语音模块

树莓派通过串口驱动LD3320语音模块

2025/8/1 11:37:07 来源:https://blog.csdn.net/weixin_54859557/article/details/142069136  浏览:    关键词:树莓派通过串口驱动LD3320语音模块

树莓派通过串口驱动LD3320语音模块

文章目录

  • 树莓派通过串口驱动LD3320语音模块
    • 一、LD3320语音模块的认知
      • 1.1 模块参数:
      • 1.2 模块结构介绍:
      • 1.3 模块的串口连接:
      • 1.4 验货测试方法:
      • 1.5 配套程序识别语句修改方法:
    • 二、树莓派串口驱动LD3320语音模块
      • 2.1 修改配置代码:
      • 2.2 测试语音模块:
      • 2.3 树莓派和语音模块硬件连接:
      • 2.4 代码编写:

一、LD3320语音模块的认知

在这里插入图片描述

1.1 模块参数:

在这里插入图片描述

1.2 模块结构介绍:

在这里插入图片描述

1.3 模块的串口连接:

在这里插入图片描述

1.4 验货测试方法:

在这里插入图片描述

在这里插入图片描述

1.5 配套程序识别语句修改方法:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

用户可以根据自己的使用情况在相对应的识别码后添加识别成功后的操作。那么在设备到某句话后就会执行相应的动作,实际上此段程序是判断识别到那个识别码然后执行相应的动作,属单片机的程序应用处理部分。

二、树莓派串口驱动LD3320语音模块

2.1 修改配置代码:

我们知道了我们的配置代码如何修改之后,我们就任意修改代码,以达到我们的需求,我们这里简单修改一下配置代码为我们的测试代码所用。

/* LDChip.c */
uint8 code sRecog[DATE_A][DATE_B] = {"rao nai bao",\		"kai fa ban yan zheng",\"dai ma ce shi",\"kai yi hao deng",\"kai er hao deng",\"kai san hao deng",\"kai si hao deng",\"guan deng"};/* 添加关键词 */
uint8 code pCode[DATE_A] = {CODE_CMD,\CODE_KFBYZ,\CODE_DMCS,\CODE_LED1,\CODE_LED2,\CODE_LED3,\CODE_LED4,\CODE_OFFLED};/* 添加识别码 */
/* LDChip.h */
//识别码修改处
#define CODE_CMD  0x00   		//该命令码0x00用户不可修改
#define CODE_DMCS	0x01		//代码测试
#define CODE_KFBYZ	0x02		//开发板测试
#define CODE_LED1 	0x04		//打开一号灯
#define CODE_LED2 	0x05		//打开二号灯
#define CODE_LED3 	0x16		//打开三号灯
#define CODE_LED4 	0x17		//打开四号灯
#define CODE_OFFLED	0x2f		//关所有灯
void User_handle(uint8 dat)
{if(0==dat){G0_flag=ENABLE;LED=0;PrintCom("收到\r\n");}else if(ENABLE==G0_flag){	G0_flag=DISABLE;LED=1;switch(dat)		  {case CODE_DMCS:			break;case CODE_KFBYZ:	break;case CODE_LED1:			PrintCom("open ledone\r\n"); break;case CODE_LED2:				PrintCom("open ledtwo\r\n"); break;case CODE_LED3:				PrintCom("open ledthree\r\n"); break;case CODE_LED4:				PrintCom("open ledfour\r\n"); break;case CODE_OFFLED:		PrintCom("close ledown\r\n"); break;																						default:PrintCom("请重新识别发口令\r\n"); break;}	}	else 	{PrintCom("请输出一级指令\r\n"); }
}	 

修改完成然后编译,生成Hex文件,然后下载到我们的模块当中,下载软件是:STC-ISP,因为语音模块上的芯片是STC11系列,所以下载很简单,我们就不演示了。

2.2 测试语音模块:

我们修改完代码之后,也把固件烧录到我们的语音模块中了,接下来就是测试语音模块是否可行

我们首先将我们的语音模块和USB转TTL模块交叉相连,然后一起插入电脑的USB口

在这里插入图片描述

接着打开我们的串口助手,我们这边用的是:STC-ISP串口助手

在这里插入图片描述

我们打开串口助手之后,选择COM3端口号,然后选择波特率9600,然后打开串口开关,通过语音可以向我们串口助手发送我们的指令,说明我们的语音测试没有问题

2.3 树莓派和语音模块硬件连接:

在这里插入图片描述

在这里插入图片描述

2.4 代码编写:

#include <stdio.h>
#include <wiringPi.h>
#include <wiringSerial.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>int main()
{int fd;int n_read;char cmd[128] = {'\0'};if(wiringPiSetup() == -1){                          //初始化wiringPiprintf("初始化wiringPi失败! \n");}fd = serialOpen("/dev/ttyAMA0", 9600);              //打开串口if(fd < 0){printf("打开串口设备失败!\n");return -1;}while(1){n_read = read(fd, cmd, sizeof(cmd));                    //读取串口数据if(strlen(cmd) == 0){printf("超时\n");    continue;}printf("收到命令:%s\n", cmd);if(strstr(cmd, "open") != NULL){printf("开灯\n");}if(strstr(cmd, "close") != NULL){printf("关灯\n");}memset(cmd, '\0', sizeof(cmd)/sizeof(char));}return 0;
}

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com