STM32F103驱动LD3320语音识别模块

2023-05-16

STM32F103驱动LD3320语音识别模块

    • LD3320语音识别模块简介
    • 模块引脚定义
    • STM32F103ZET6开发板与模块接线
    • 测试代码
    • 实验结果

LD3320语音识别模块简介

基于 LD3320,可以在任何的电子产品中,甚至包括最简单的 51 作为主控芯片的系统中,轻松实现语音识别/声控/人机对话功能。为所有的电子产品增加 VUI(Voice User Interface)语音用户操作界面。
主要特色功能:
1.非特定人语音识别技术: 不需要用户进行录音训练可动态编辑的识别关键词语列表: 只需要把识别的关键词语以字符串的形式传送进芯片,即可以在下次识别中立即生效。比如,用户在 51 等 MCU 的编程中,简单地通过设置芯片的寄存器,把诸如“你好”这样的识别关键词的内容动态地传入芯片中,芯片就可以识别这样设定的关键词语了。
2.真正单芯片解决方案:不需要任何外接的辅助Flash 和RAM,真正降低系统成本。内置高精度A/D和D/A通道:不需要外接AD 芯片,只需要把麦克风接在芯片的AD 引脚上;可以播放声音文件,并提供550mW 的内置放大器。高准确度和实用的语音识别效果。
3.支持用户自由编辑50 条关键词语条:在同一时刻,最多在50 条关键词语中进行识别,终端用户可以根据场景需要,随时编辑和更新这50 条关键词语的内容。词组或短句,长度为不超过 10 个汉字或者 79 个字节的拼音串。
主要技术参数:
1.内置单声道mono 16-bitA/D 模数转换
2. 内置双声道stereo 16-bit D/A数模转换
3. 内置20mW 双声道耳机放大器输出
4. 内置550mW 单声道扬声器放大器输出
5. 支持并行接口或者SPI 接口
6. 内置锁相电路PLL,输入主控时钟频率为2MHz -34MHz

模块引脚定义

在这里插入图片描述
在这里插入图片描述
P1:MIC麦克风插座,板载了MIC咪头可不用接
P2:SPEAK喇叭输出
两组VCC均为3.3V,一组5V均可给模块供电,实际只需接一组即可
MO:SPI接口的MOSI
MI:SPI接口的MISO
SCK:SPI接口的时钟引脚
CS:SPI接口的片选引脚
RST:复位引脚,低电平有效
IRQ:中断输出引脚,低有效
WR:写允许共用SPI允许,低电平有效

STM32F103ZET6开发板与模块接线

STM32LD3320
CSPA4
IRQPB12
SCKPA5
WRPB13
MOPA7
RSTPB15
MIPA6

在这里插入图片描述

测试代码

用户只需修改几处代码,便可以增加新的指令。
1.LD2230_config.h 文件中,增加相应的识别码。(必须)

///识别码(客户修改处)
#define CODE_LSD	1	 //流水灯
#define CODE_SS	  2	 //闪烁
#define CODE_AJCF	3	 //按键触发
#define CODE_QM	  4	 //全灭
#define CODE_JT		5  //状态

2.LD2230.c 文件中,在 LD3320_main 函数中增加相印分支。(必须)

                switch(nAsrRes)		   			//对结果执行相关操作,客户修改
						{
							case CODE_LSD:					//命令“流水灯”
								printf(" 流水灯 指令识别成功\r\n"); 
							
															 break;
							case CODE_SS:	 					//命令“闪烁”
								printf(" 闪烁 指令识别成功\r\n"); 
															 break;
							case CODE_AJCF:					//命令“按键触发”
								printf(" 按键触发 指令识别成功\r\n"); 
															break;
							case CODE_QM:						//命令“全灭”
								printf(" 全灭 指令识别成功\r\n");
															break;
							case CODE_JT:						//命令“状态”
								printf(" 状态 指令识别成功\r\n");
							
							default:break;
						}	

3.LD2230.c 文件中,在 LD_AsrAddFixed 函数中修改相应代码。(必须)DATA_A 为指令的个数, DATA_B 为指令的最大长度, sRecog 二维数组为相应指令的拼音集合(注意空格)。pCode 为指令识别码的集合。

	#define DATE_A 5    //数组二维数值
	#define DATE_B 20		//数组一维数值
	//添加关键词,用户修改
	uint8  sRecog[DATE_A][DATE_B] = {
	 			"liu shui deng",\
				"shan shuo",\
				"an jian chu fa",\
				"quan mie",\
				"zhuang tai"\
		
  								   };	
	uint8  pCode[DATE_A] = {
                 			CODE_LSD,	\
 						    CODE_SS,	\
					        CODE_AJCF,  \
				            CODE_QM,	\
			                CODE_JT		\
  						    };	//添加识别码,用户修改

4.LD2230.c 文件中,在 LD3320_main 函数中修改相应代码。(建议)

///识别码(客户修改处)
 	printf("1、流水灯\r\n"); 
	printf("2、闪烁\r\n"); 				
	printf("3、按键触发\r\n"); 		
	printf("4、全灭\r\n"); 			
	printf("5、状态\r\n"); 

5.LD2230.c 文件中,在 Board_text 函数中修改相应代码。(建议)

static void Board_text(uint8 Code_Val)
{																					 
	switch(Code_Val)  //对结果执行相关操作
	{
		case CODE_LSD:  //命令“流水灯”
			Glide_LED();
		break;
		case CODE_SS:	  //命令“闪烁”
			Flicker_LED();
		break;
		case CODE_AJCF:	//命令“按键触发”
			Key_LED();
		break;
		case CODE_QM:		//命令“全灭”
			Off_LED();
		break;
		case CODE_JT:		//命令“状态”
			Jt_LED();
		break;
		default:break;
	}	
}

实验结果

通过STM32串口1通过USB转串口模块连接到电脑,打开串口助手软件,波特率设为115200,将显示以下内容,然后对着咪头说“流水灯”、“闪烁”、“按键触发”、“全灭”、“状态”命令词,串口助手显示出对应命令词识别成功。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32F103驱动LD3320语音识别模块 的相关文章

  • 使用RT-Thread studio(RT-Thread4.0.3)的PWM功能(STM32F103的PA15口)步骤

    打开PWM组件 修改board h的宏 这里注意移植的时候要将HAL TIM Base MspInit函数名改为HAL TIM PWM MspInit 修改board c xff0c 在文件最后增加以下内容 xff08 因为用的是PA15所
  • STM32F103 配置Systick

    Systick系统滴答时钟 Systick h ifndef SYSTICK H define SYSTICK H include 34 stm32f10x h 34 void SysTick Init void void Delay ms
  • 基于STM32F103入门1——点亮LED灯

    今天学习了STM32固件库点灯程序 点灯也可以玩过很多好玩的东西 xff0c 在这里做一下总结 STM32点灯程序合集 1 xff1a 新建固件库工程文件1 1找到一个固件库模板1 2 xff1a 打开KEIL5新建工程1 3 xff1a
  • 基于STM32F103与FreeRTOS的自平衡小车实现

    首先移植FreeRTOS到STM32F103上 xff0c 接着就是实现MPU6050的初始化 xff0c 这里移植了正点原子的参考例程 xff0c 基本实现是IIC初始化的 xff0c 读写IIC xff0c 接着就可以配置MPU6050
  • stm32f103最小系统板详细介绍

    一 什么是单片机最小系统 常见的单片机最小系统为单片机能独立运行程序及控制外围电路的最简单电路 xff0c 主要由单片机 晶振电路 复位电路三部分构成 Stm32f103c8t6也不例外 xff0c 构成最小的运行电路也需要以上三部分 St
  • STM32f103时钟系统简介

    主要是讲解怎么看懂这个图 一 内置RC振荡器 xff08 HSI RC xff09 频率是约为8MHz xff0c 因为其频率不是很稳定 其可作为系统时钟的一个选项 二 晶振振荡器 xff08 HSE OSC xff09 从图中可以看到其是
  • STM32F103系列NVIC中断优先级分组讲解

    一 简介 CM3内核支持256个中断 xff0c 16个内核中断 xff0c 240个外部中断 xff0c 并且拥有256级的可编程中断设置 但是STM32只用到了CM3内核的一部分 xff0c STM32有84个中断 xff0c 包括16
  • PID控制输出PWM核心代码(基于STM32F103)

    注 xff1a 1 如果对于PID控制原理不是很了解 xff0c 可以找些资料看 xff0c 最好先搞懂原理 2 程序中Kp Ki Kd 199 0可根据实际情况自己修改 全局变量 float target 61 30 0 目标温度 flo
  • STM32F103笔记(二)——GPIO原理

    GPIO的工作原理与两个实验实例 一 STM32F103 GPIO说明1 stm32 GPIO引脚的主要功能2 GPIO相关配置寄存器的简介3 STM32F103 GPIO的8种工作方式4种输入模式4种输出模式 二 点亮LED实例 xff0
  • [STM32F1]关于STM32F103芯片按钮机制串口发送程序

    就是目前遇到一个项目 xff0c 是监视各个按钮状态并将各个按钮的状态发送至上位机 xff0c 上位机进行整体程序逻辑动作 一般情况下串口发送可以直接一直发送给上位机 xff0c 通过解析不同数据位0和1的状态可以知道具体哪个按钮按下 xf
  • STM32F103控制PCA9685产生16路PWM波控制SG90舵机

    STM32控制PCA9685产生16路PWM波控制SG90舵机 如果你能点开这篇文章 xff0c 说明你已经知道PCA9685是多么强大 xff0c NXP公司原本做这片芯片是为了提供给LED使用 xff0c 在其官方文档里也能看到所有PW
  • BH1750光强度传感器Stm32f103驱动(已测试ok)

    1 实验 Stm32f103 驱动 bh1750采集光照强度 串口打印采集到的数据 2 实验准备器材 开发版 stm32f103c8t6 器件 bh1750 GY 302 开发环境 win10 KILE4 下载程序的软件 FlyMcu ex
  • STM32 超声波模块测距

    目录 HC SR04模块 HC SR04超声波测距模块工作原理 HC SR04超声波模块的时序触发图 思路步骤 代码 实验结果 总结 HC SR04模块 HC SR04超声波测距模块工作原理 1 采用IO口TRIG触发测距 给至少10us的
  • 入门stm32简单电灯实验

    看原理图找内置LED接线 stm32f103 我这边是接的 PE5 外设时钟使能寄存器的相关配置 因为LED1接的是PE5 所以GBIO端口E 查看中文手册获取GPIOE寄存器起始地址0x4001 1800 通过查看系统架构 可以发现GPI
  • 基于STM32F103 实现按键状态机

    文章目录 开发板 开发环境 前言 按键消抖 按键硬件原理图 软件延时实现思路 实验目的 代码 按键状态 按键信息 按键相关定义 按键底层配置及状态获取 总结 开发板 正点原子STM32F103ZET6战舰 开发环境 stm32cubeMX
  • 如何根据芯片手册时序图编写驱动程序

    如何根据芯片手册时序图编写驱动程序 对于电子开发者来说 刚刚拿到一个芯片 常用的芯片可以参考网上的例程来做深入了解 对于一个不常用的芯片来说 Datasheet几乎是使用芯片的唯一的资料 所以根据Datasheet时序图写出对应的驱动程序就
  • STM32定时器-基本定时器

    目录 定时器分类 基本定时器功能框图讲解 基本定时器功能 时钟源 计数器时钟 计数器 自动重装载寄存器 定时时间的计算 定时器初始化结构体详解 实验 定时器分类 STM32F1 系列中 除了互联型的产品 共有 8 个定时器 分为基本定时器
  • STM32CUBEMX F103 HAL库开发 两路定时器的Encoder编码器模式

    机器人开发过程中 对于直流电机来说 编码器至关重要 它不仅可以使我们对电极进行精确的速度闭环 位置闭环 还可以通过时间积分 根据运动学关系 获得速度 位置等信息 STM32的定时器有编码器模式 大大的方便我们的开发 使用STM32cubeM
  • STM32F103移植FreeRTOS必须搞明白的系列知识---2(FreeRTOS任务优先级)

    STM32F103移植FreeRTOS必须搞明白的系列知识 1 Cortex CM3中断优先级 STM32F103移植FreeRTOS必须搞明白的系列知识 2 FreeRTOS任务优先级 STM32F103移植FreeRTOS必须搞明白的系
  • 解决keil中 点击setting 程序中断问题

    自己写了一个LED常亮的程序 入门嘛 但是程序在下载后 点击 debug setting 在软件识别J link后 程序是成功的 但是LED不亮了 下面是解决方法 记住把2标记处的对勾去掉就可以了 这个功能是 在你连接完成时自动在Reset

随机推荐

  • 【 rbx1翻译 第七章、控制移动基座】第八节、使用里程计进行往返运动

    7 8 Out and Back Using Odometry 使用里程计进行往返运动 现在 xff0c 我们了解了里程表信息是如何在ROS中表示的 xff0c 我们可以更精确地在往返过程中移动机器人 下一个脚本将监视 odom和 base
  • 项目总结一:串口通信 || 串口接收数据和写入的数据不一致

    在做项目串口通信时遇到一个奇怪的bug xff0c 我写入的一个两个字节short类型数据3 xff0c 接受到的数据很奇怪有时是一个很大的数 xff0c 有时又是300多 xff0c 为了找到原因也是废了一些时间 xff0c 这里给分享一
  • linux---套接字编程

    一 Socket是什么 1 socket套接字 xff1a socket起源于Unix xff0c 而Unix Linux基本哲学之一就是 一切皆文件 xff0c 都可以用 打开open gt 读写write read gt 关闭close
  • ROS订阅者只订阅一次消息

    include lt ros ros h gt include lt opencv2 core core hpp gt include lt opencv2 imgproc imgproc hpp gt include lt opencv2
  • 【FPGA练习】(一): UART串口通信实验

    由于之前学习FPGA的过程中 xff0c 没有做一个良好的记录 xff0c 以及已学知识的扩展 xff0c 所以从今天开始每一个实验例程和扩展应用 xff0c 都要做文档记录 本实验 xff0c 是基于正点原子达芬奇xc7a35tfgg48
  • Ubuntu配置GStreamer实现python推流

    想用python实现一个推流服务 xff0c 下面记录一下配置过程 系统是ubuntu18 04 xff0c python3 6和3 8中都试过 1 安装gstreamer sudo apt get install libgstreamer
  • CMake 引用第三方库

    一 cmake简介 cmake 是gnu工具链中构建项目重要的一环 xff0c 而且在windows linux OS X中都可以使用 xff0c 特别是linux C C 43 43 程序员必备基本功 二 基本命令 xff1a 命名变量
  • C/C++:struct和class区别

    C和C 43 43 中的Struct区别 CC 43 43 不能将函数放在结构体声明能将函数放在结构体声明在C结构体声明中不能使用C 43 43 访问修饰符 public protected private 在C 43 43 中可以使用 在
  • 四旋翼无人机学习之准备篇(一)

    最近我哥要给我邮递个四旋翼无人机 xff0c 再加上本人对蓝天从小就很感兴趣 所以在学习完四驱小车后打算上手下无人机 刚开始学习根本不知道要看哪些 xff0c 在几天漫无头绪的学习 xff0c 终于有点气色了 xff0c 就把学习经验分享给
  • 更改Ubuntu默认python版本的方法

    可以按照以下方法使用 ls 命令来查看你的系统中都有那些 Python 的二进制文件可供使用 1 2 ls usr bin python usr bin python usr bin python2 usr bin python2 7 us
  • c++求素数

    C 43 43 练习第一课 C 43 43 输入一个n 求n以内的素数 xff1a C 43 43 输入一个n 求n以内的素数 xff1a include span class token operator lt span iostream
  • 贪吃蛇

    C尝试写的贪吃蛇项目 xff08 数组实现 xff09 以后会更新用链表实现贪吃蛇 span class token macro property span class token directive keyword define span
  • Android公司面试题

    Android 面试题及面试经验 我的第一次面试经验 今天来到成都面试 xff0c 面试的是Android xff0c 说实话 xff0c Android并不是我的强项 xff0c 只是在大学期间接触过 第一关人事还可以 xff0c 第二关
  • linux---tcp通信流程以及代码实现

    TCP通信特性 xff1a xff08 在网络版块详细讲解 xff09 面向连接 可靠 面向字节流 TCP通信过程 c 43 43 封装TCP通信 1 include lt iostream gt 2 include lt arpa ine
  • 物联网学习及理解

    物联网学习及理解 xff08 来自一个物联网专业学生的心得 xff09 什么是物联网物联网能做什么一 物联网运用领域二 物联网发展趋势 物联网怎么实现一 局域网内的物联网二 广域网内的物联网 总结 在开始写这篇博客之前 xff0c 我不得不
  • vscode代码格式化快捷键

    Windows xff1a Shift 43 Alt 43 F Linux Ctrl 43 Shift 43 I MacOS Shift 43 Option 43 F
  • 多线程和网络编程(多线程)

    一 多线程 1 进程和线程 进程 xff1a 是正在运行的程序 是系统进行资源分配和调用的独立单位 每一个进程都有它自己的内存空间和系统资源 线程 xff1a 是进程中的单个顺序控制流 xff0c 是一条执行路径 单线程 xff1a 一个进
  • Java八种基本数据类型(图文详解)

    Java八种基本数据类型 Java八种数据类型Java八种数据类型的分类 xff08 图 xff09 基本数据类型分为三大类 数值型 字符型 布尔型 数值型整数类型 xff08 byte short int long xff09 浮点型 f
  • numpy基础用法-学习笔记-task10

    大作业 本次练习使用 鸢尾属植物数据集 iris data xff0c 在这个数据集中 xff0c 包括了三类不同的鸢尾属植物 xff1a Iris Setosa xff0c Iris Versicolour xff0c Iris Virg
  • STM32F103驱动LD3320语音识别模块

    STM32F103驱动LD3320语音识别模块 LD3320语音识别模块简介模块引脚定义STM32F103ZET6开发板与模块接线测试代码实验结果 LD3320语音识别模块简介 基于 LD3320 xff0c 可以在任何的电子产品中 xff