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.pswp.cn/bicheng/79152.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/79152.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/79152.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

「動態規劃」線性DP:最長上升子序列(LIS)|編輯距離 / LeetCode 300|72(C++)

概述 DP&#xff0c;即動態規劃是解決最優化問題的一類算法&#xff0c;我們要通過將原始問題分解成規模更小的、相似的子問題&#xff0c;通過求解這些易求解的子問題來計算原始問題。 線性DP是一類基本DP&#xff0c;我們來通過它感受DP算法的奧義。 最長上升子序列&#x…

【NumPy完全指南】從基礎操作到高性能計算實戰

&#x1f4d1; 目錄 一、NumPy核心價值1.1 科學計算現狀分析1.2 ndarray設計哲學 二、核心數據結構解析2.1 ndarray內存布局2.2 數據類型體系 三、矢量化編程實踐3.1 通用函數(ufunc)示例3.2 廣播機制圖解 四、高性能計算進階4.1 內存預分配策略4.2 Cython混合編程 五、典型應用…

你的項目有‘哇‘點嗎?

你的項目有哇點嗎&#xff1f; 刷了一下午招聘軟件&#xff0c;發現沒&#xff1f;大廠JD里總愛寫有創新力者優先——可你們的簡歷&#xff0c;創新力還不如食堂菜單&#xff01; 程序員寫項目最大的誤區&#xff1a;把創新當彩蛋藏最后&#xff01;什么參與需求評審負責模塊…

2025年危化品安全員考試題庫及答案

一、單選題 126.安全生產監督管理部門和負有安全生產監督管理職責的有關部門逐級上報事故情況,每級上報的時間不得超過&#xff08;&#xff09;小時。 A.2 B.6 C.12 答案&#xff1a;A 127.按照《安全生產法》規定,危險化學品生產經營單位的從業人員不服從管理,違反安全生…

第十六屆藍橋杯 C/C++ B組 題解

做之前的真題就可以發現&#xff0c;藍橋杯特別喜歡出找規律的題&#xff0c;但是我還是低估了官方的執念。本博客用于記錄第一次藍橋的過程&#xff0c;代碼寫的很爛&#xff0c;洛谷已經有的題解&#xff0c;這里不再贅述&#xff0c;只說自己遇到的問題。用于以后回顧和查找…

C++ 基于多設計模式下的同步異步?志系統-2項目實現

?志系統框架設計 1.?志等級模塊:對輸出?志的等級進?劃分&#xff0c;以便于控制?志的輸出&#xff0c;并提供等級枚舉轉字符串功能。 ? OFF&#xff1a;關閉 ? DEBUG&#xff1a;調試&#xff0c;調試時的關鍵信息輸出。 ? INFO&#xff1a;提?&#xff0c;普通的提?…

提示詞工程(GOT)把思維鏈推理過程圖結構化

Graph of Thoughts&#xff08;GOT&#xff09;&#xff1f; 思維圖&#xff08;Graph of Thoughts&#xff09;是一種結構化的表示方法&#xff0c;用于描述和組織模型的推理過程。它將信息和思維過程以圖的形式表達&#xff0c;其中節點代表想法或信息&#xff0c;邊代表它們…

登錄github失敗---解決方案

登錄github失敗—解決方案 1.使用 Microsoft Edge 瀏覽器 2.https://www.itdog.cn/dns/ 查詢 github.global.ssl.fastly.net github.com 兩個 域名的 IP 3.修改DNS 為 8.8.8.8 8.8.4.4 4.修改windows hosts 文件 5. 使用 Microsoft Edge 瀏覽器 打開github.com

Spring AOP概念及其實現

一、什么是AOP 全稱Aspect Oriented Programming&#xff0c;即面向切面編程&#xff0c;AOP是Spring框架的第二大核心&#xff0c;第一大為IOC。什么是面向切面編程&#xff1f;切面就是指某一類特定的問題&#xff0c;所以AOP也可以稱為面向特定方法編程。例如對異常的統一處…

強化學習_Paper_2017_Curiosity-driven Exploration by Self-supervised Prediction

paper Link: ICM: Curiosity-driven Exploration by Self-supervised Prediction GITHUB Link: 官方: noreward-rl 1- 主要貢獻 對好奇心進行定義與建模 好奇心定義&#xff1a;next state的prediction error作為該state novelty 如果智能體真的“懂”一個state&#xff0c;那…

spring中的@Configuration注解詳解

一、概述與核心作用 Configuration是Spring框架中用于定義配置類的核心注解&#xff0c;旨在替代傳統的XML配置方式&#xff0c;通過Java代碼實現Bean的聲明、依賴管理及環境配置。其核心作用包括&#xff1a; 標識配置類&#xff1a;標記一個類為Spring的配置類&#xff0c;…

7.計算機網絡相關術語

7. 計算機網絡相關術語 ACK (Acknowledgement) 確認 ADSL (Asymmetric Digital Subscriber Line) 非對稱數字用戶線 AP (Access Point) 接入點 AP (Application) 應用程序 API (Application Programming Interface) 應用編程接口 APNIC (Asia Pacific Network Informatio…

Hadoop 集群基礎指令指南

目錄 &#x1f9e9; 一、Hadoop 基礎服務管理指令 ?? 啟動 Hadoop ?? 關閉 Hadoop &#x1f9fe; 查看進程是否正常運行 &#x1f4c1; 二、HDFS 常用文件系統指令 &#x1f6e0;? 三、MapReduce 作業運行指令 &#x1f4cb; 四、集群狀態監控指令 &#x1f4a1; …

【MySQL數據庫】事務

目錄 1&#xff0c;事務的詳細介紹 2&#xff0c;事務的屬性 3&#xff0c;事務常見的操作方式 1&#xff0c;事務的詳細介紹 在MySQL數據庫中&#xff0c;事務是指一組SQL語句作為一個指令去執行相應的操作&#xff0c;這些操作要么全部成功提交&#xff0c;對數據庫產生影…

一、OrcaSlicer源碼編譯

一、下載 1、OrcaSlicer 2.3.0版本的源碼 git clone https://github.com/SoftFever/OrcaSlicer.git -b v2.3.0 二、編譯 1、在OrcaSlicer目錄運行cmd窗口&#xff0c;輸入build_release.bat 2、如果出錯了&#xff0c;可以多運行幾次build_release.bat 3、在OrcaSlicer\b…

港口危貨儲存單位主要安全管理人員考試精選題目

港口危貨儲存單位主要安全管理人員考試精選題目 1、危險貨物儲存場所的電氣設備應符合&#xff08; &#xff09;要求。 A. 防火 B. 防爆 C. 防塵 D. 防潮 答案&#xff1a;B 解析&#xff1a;港口危貨儲存單位存在易燃易爆等危險貨物&#xff0c;電氣設備若不防爆&…

格雷希爾用于工業氣體充裝站的CZ系列氣罐充裝轉換連接器,其日常維護有哪些

格雷希爾氣瓶充裝連接器&#xff0c;長期用于壓縮氣體的快速充裝和壓縮氣瓶的氣密性檢測&#xff0c;需要進行定期的維護&#xff0c;為每一次的充裝提供更好的連接。下列建議的幾點維護準則適用于格雷希爾所有充注接頭&#xff0c;請非專業人士不要隨意拆卸連接器。 格雷希爾氣…

Java 多線程進階:什么是線程安全?

在多線程編程中&#xff0c;“線程安全”是一個非常重要但又常被誤解的概念。尤其對于剛接觸多線程的人來說&#xff0c;不理解線程安全的本質&#xff0c;容易寫出“偶爾出錯”的代碼——這類 bug 往往隱蔽且難以復現。 本文將用盡可能通俗的語言&#xff0c;從三個角度解釋線…

MSO-Player:基于vlc的Unity直播流播放器,支持主流RTSP、RTMP、HTTP等常見格式

MSO-Player 基于libVLC的Unity視頻播放解決方案 支持2D視頻和360度全景視頻播放的Unity插件 &#x1f4d1; 目錄 &#x1f3a5; MSO-Player &#x1f4cb; 功能概述&#x1f680; 快速入門&#x1f4da; 關鍵組件&#x1f4dd; 使用案例&#x1f50c; 依賴項&#x1f4cb; 注意…

navicat中導出數據表結構并在word更改為三線表(適用于navicat導不出doc)

SELECTCOLUMN_NAME 列名,COLUMN_TYPE 數據類型,DATA_TYPE 字段類型,IS_NULLABLE 是否為空,COLUMN_DEFAULT 默認值,COLUMN_COMMENT 備注 FROMINFORMATION_SCHEMA.COLUMNS WHEREtable_schema db_animal&#xff08;數據庫名&#xff09; AND table_name activity&#xff08;…