当前位置: 首页 > web >正文

SNR8016语音模块详解(STM32)

目录

一、介绍

二、传感器原理

1.原理图

2.引脚描述

三、程序设计

main文件

usart.h文件

usart.c文件

四、实验效果 

五、资料获取

项目分享


一、介绍

        SNR8016语音模块是智纳捷科技生产的一种离线语音识别模块,设计适合用于DIY领域,开放用户设定命令此界面。板载烧录器电路,使用USB连接电脑即可实现程序更新。模块采用麦克风即可实现10米超远距离语音识别,识别率达97%以上。

以下是SNR8016语音模块的参数:

型号

SNR8016VR

工作电压

DC5V

待机电流

50mA

功放输出

DAC1W

语音指令数

160个(最大)

通讯方式

UART/IO

扬声器

1W4Ω

哔哩哔哩视频链接:

SNR8016语音模块(STM32)

(资料分享见文末) 

二、传感器原理

1.原理图

2.引脚描述

 

三、程序设计

1.使用STM32F103C8T6使用SNR8016语音模块通过语音控制单片机指示灯亮灭。

SNR8016_TX

PB11

SNR8016_RX

PB10

LED

PC13

OLED_SCL

PB1

OLED_SDA

PB0

main文件

#include "stm32f10x.h"
#include "led.h"
#include "usart3.h"
#include "delay.h"
#include "oled.h"
#include "key.h"/*****************辰哥单片机设计******************STM32* 项目			:	SNR8016语音模块实验                     * 版本			: V1.0* 日期			: 2025.2.8* MCU			:	STM32F103C8T6* 接口			:	参看usart3.h						* BILIBILI	:	辰哥单片机设计* CSDN			:	辰哥单片机设计* 作者			:	辰哥 **********************BEGIN***********************/extern u8 Res;int main(void)
{ SystemInit();//配置系统时钟为72M	delay_init(72);LED_Init();LED_On();USART3_Config();//串口初始化Key_Init();OLED_Init();
//	printf("AF:30");//声音调到31档   最大delay_ms(1000);OLED_Clear();//显示“灯光状态:”OLED_ShowChinese(0,0,0,16,1);OLED_ShowChinese(16,0,1,16,1);OLED_ShowChinese(32,0,2,16,1);OLED_ShowChinese(48,0,3,16,1);OLED_ShowChar(64,0,':',16,1);while (1){switch(Res){case 1:LED_On();OLED_ShowChinese(56,30,4,16,1);		//开break;case 2:LED_Off();OLED_ShowChinese(56,30,5,16,1);		//关break;default:break;}}
}

usart.h文件

#ifndef __USART1_H
#define	__USART1_H#include "stm32f10x.h"
#include <stdio.h>/*****************辰哥单片机设计******************STM32* 项目			:	SNR8016语音模块实验                     * 版本			: V1.0* 日期			: 2025.2.7* MCU			:	STM32F103C8T6* 接口			:	参串口1						* BILIBILI	:	辰哥单片机设计* CSDN			:	辰哥单片机设计* 作者			:	辰哥 **********************BEGIN***********************/void USART1_Config(void);
int fputc(int ch, FILE *f);
void USART1_printf(USART_TypeDef* USARTx, uint8_t *Data,...);
void UART1SendByte(unsigned char SendData);#endif /* __USART1_H */

usart.c文件

#include "usart.h"
#include <stdarg.h>/*****************辰哥单片机设计******************STM32* 项目			:	SNR8016语音模块实验                     * 版本			: V1.0* 日期			: 2025.2.7* MCU			:	STM32F103C8T6* 接口			:	参串口1						* BILIBILI	:	辰哥单片机设计* CSDN			:	辰哥单片机设计* 作者			:	辰哥 **********************BEGIN***********************/void USART1_Config(void)
{GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;/* 使能 USART1 时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE); /* USART1 使用IO端口配置 */    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;	//浮空输入GPIO_Init(GPIOA, &GPIO_InitStructure);   //初始化GPIOA/* USART1 工作模式配置 */USART_InitStructure.USART_BaudRate = 9600;	//波特率设置:9600USART_InitStructure.USART_WordLength = USART_WordLength_8b;	//数据位数设置:8位USART_InitStructure.USART_StopBits = USART_StopBits_1; 	//停止位设置:1位USART_InitStructure.USART_Parity = USART_Parity_No ;  //是否奇偶校验:无USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;	//硬件流控制模式设置:没有使能USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//接收与发送都使能USART_Init(USART1, &USART_InitStructure);  //初始化USART1USART_Cmd(USART1, ENABLE);// USART1使能
}/* 描述  :重定向c库函数printf到USART1*/ 
int fputc(int ch, FILE *f)
{
/* 将Printf内容发往串口 */USART_SendData(USART1, (unsigned char) ch);while (!(USART1->SR & USART_FLAG_TXE));return (ch);
}/*发送一个字节数据*/
void UART1SendByte(unsigned char SendData)
{	   USART_SendData(USART1,SendData);while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);	    
} 

四、实验效果 

五、资料获取

项目分享

http://www.xdnf.cn/news/3128.html

相关文章:

  • Python中的内置函数
  • Django 自定义celery-beat调度器,查询自定义表的Cron表达式进行任务调度
  • K8S - GitOps 入门实战 - 自动发布与秒级回滚
  • 运维仙途 第1章 灵机突现探监控
  • 【文献速递】邻位连接技术(PLA)在细胞器相互作用中的应用
  • 汽车免拆诊断案例 | 2015款奔驰C200L车发动机起动延迟
  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年4月30日第68弹
  • springboot集成Lucene详细使用
  • NVIDIA DRIVE AGX平台:引领智能驾驶安全新时代
  • 使用 Vue 开发 VS Code 插件前端页面(上)
  • 「Unity3D」TextMeshPro使用TMP_InputField实现,输入框高度自动扩展与收缩
  • AI技术在当代互联网行业的崛起与重要性!
  • MCP 服务器搭建【stdio 类型】实现上市公司年报查询总结,配合 Cherry Studio使用简单
  • Copilot for Excel 一键词云分析与情绪分析
  • 数据仓库与数据湖的对比分析
  • 计算机毕业设计--基于深度学习(U-Net与多尺度ViT)的模糊车牌图像清晰化复原算法设计与实现(含Github代码+Web端在线体验链接)
  • 第三方软件测试报告如何凭借独立公正与专业权威发挥关键作用?
  • 传输线的反射:
  • MS2111多点低压差分(M-LVDS)线路驱动器和接收器
  • 第13讲:图形尺寸与分辨率设置——适配论文版面,打造专业图稿!
  • AI正当时,国内AI HR领先厂商易路如何从“单点突破”到“全面融合”
  • The Open Group 参加雷丁博物馆的数字革命展览
  • JSON配置文件格式全解析与多语言实战指南
  • 软考高项(信息系统项目管理师)第 4 版全章节核心考点解析(第4版课程精华版)
  • 《冰雪传奇点卡版》:探索冰雪世界的传奇旅程!
  • 2025年KBS新算法 SCI1区TOP:长颖燕麦优化算法AOO,深度解析+性能实测
  • 虚假安全补丁攻击WooCommerce管理员以劫持网站
  • 混淆矩阵(Confusion Matrix)横坐标
  • 瑞幸咖啡披露2025年Q1财报:门店净增1757家,营业利润率达8.3%
  • 【网络编程】socket编程和TCP协议