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

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);	    
} 

四、实验效果 

五、资料获取

项目分享

相关文章:

  • 外部访问 Kubernetes 集群中 MQ 服务的方案
  • “技术创新+全球视野”良性驱动,首航新能的2025新征程正式起航
  • 【Linux更新openSSH服务】
  • 经典算法 独立任务最优调度问题
  • 数据结构每日一题day14(链表)★★★★★
  • nDCG(归一化折损累计增益) 是衡量排序质量的指标,常用于搜索引擎或推荐系统
  • FUSE 3.0.0 | 聚合7大直播平台的免费电视直播软件,支持原画清晰度及弹幕、收藏功能
  • 玩转Nginx
  • 电脑重复图片太多?推荐一款开源的图片去重工具ImageContrastTools
  • 鸿蒙 应用开发 项目资源结构及资源访问
  • 数据库12(游标)
  • 2025年-redis(p1-p10)
  • D365 开发环境证书到期替换处理
  • ant-design 表格多选无法显示,选一个选项全部被选中
  • 牛客:AB4 逆波兰表达式求值
  • 启动Hadoop集群及集群效果
  • ai改写智能助手在线润色,高效产出优质文章!
  • Java 数据类型之间的转换入门
  • OpenCV的grabCut算法分割图像
  • Windows结合WSL之ext4.vhdx不断增大问题
  • 思政课也精彩,“少年修齐讲堂”开讲《我的中国“芯”》
  • 韩国代总统、国务总理韩德洙宣布辞职,将择期宣布参选总统
  • 三大上市猪企:前瞻应对饲料原材料价格波动
  • 运动健康|不同能力跑者,跑步前后营养补给差别这么大?
  • 中国建设银行浙江省分行原党委书记、行长高强接受审查调查
  • 中国银行副行长刘进任该行党委副书记