91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

雷龍LSYT201B語言模塊結合STM32使用(噪聲環(huán)境也能高精度)

jim ? 來源:雷龍發(fā)展 ? 作者:雷龍發(fā)展 ? 2024-09-10 17:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

雷龍LSYT201B語音模塊配合STM32使用視頻示例:https://www.bilibili.com/video/BV1SZ421M7oE?t=2.9

前言

基于YT2228芯片開發(fā)的一款面向智能家居控制的離線語音控制模組,離線語音模塊,集成藍牙功能,可適配各種不同的應用場景,方便使用,減少開發(fā)周期。模塊通過麥克風對語音進行采集,然后由語音芯片進行識別處理,識別成功的結果可通過語音進行播報和通過串口下發(fā)指令給整機控制板。

一、LSYT201B

一、產品簡介

YT2228 是根據智能語音交互市場需求及思必馳算法的發(fā)展方向定義開發(fā)的 “芯片+算法”人工智能人機語音交互解決方案,具有高性能、低功耗等特點。

該芯片通過軟硬融合的方法,具備快速賦予各類設備語音交互的能力,極大的提高了用戶體驗和產品靈活性。該芯片支持家居5m交互,本地最多可識別150詞,具備多輪交互能力。

二、產品特征

2.1 處理器

? 32位處理器,支持FPU(Hardware Float Point Unit)

? 運行頻率:240MHz

? 內置 2MB FLASH

? 64中斷向量

? 4級別中斷優(yōu)先級

2.2 外設

? USB1.1

? 4個多功能16位定時器,支持捕獲和PWM模式

? 3個16位PWM發(fā)生器,可用于驅動電機

? 2個SPI

? 所有GPIO支持外部中斷

2.3 音頻

? 兩通道 16 位 DAC,SNR> = 95dB

? 單通道 16 位 ADC,SNR> = 90dB

? 采樣率支持 8KHz / 11.025KHz / 16KHz / 22.05KHz / 24KHz

/32KHz / 44.1KHz / 48KHz

2.4 藍牙

? 符合藍牙 V5.1 + BR + EDR + BLE 規(guī)范

? 滿足 Class1 class2 和 class3 傳輸功耗需求

? 支持 GFSK 和 π/ 4 DQPSK 所有包裝類型

? 最大+ 6dbm 發(fā)射功率

? 接收器最小靈敏度

2.5 電源

? VBAT供電DC: 3.0V - 5.5V

? VDDIO可輸出50mA@2.2-3.6V

? 模組功耗:50mA

2.6 封裝

? VSSOP28(0.635)/QSOP28

2.7 溫度

? 工作溫度:-40℃ to +85℃

? 存儲溫度:-65℃ to +150℃

2.8 應用領域

? 智能家電(生活電器、廚房家電等)

? 智能衛(wèi)浴、智能照明、智能家居

? 智能玩具

? 空調伴侶

二、使用步驟

現在也已經大致了解了這個模塊的功能,那么能不能結合單片機來使用呢。

1.UART 控制協(xié)議

先來看一下他的通信協(xié)議

采用標準 UART 異步串口接口, 3.3V TTL 電平。通訊格式

波特率9600、數據位8 位、停止位1 位、奇偶校驗位無、流控無。

wKgZombgC7KAZwKdAABX02j1KsU015.pngwKgaombgC7SAbiHHAAFt00Hq9Qw683.png

有了這些東西去對他進行開發(fā)還不是輕輕松松,關鍵效果怎么樣呢(太強了,從視頻里就能看出)

2.代碼

廢話不多說直接貼代碼。由于STM32接收的是ASII碼,我們先將他轉十六進制字符串,然后用strcmp來對字符串作比較。

代碼如下:

#include "sys.h"

#include "usart.h"

#include "led.h"

#include "string.h"

//

//如果使用ucos,則包括下面的頭文件即可.

#if SYSTEM_SUPPORT_OS

#include "includes.h" //ucos 使用

#endif

#if 1

#pragma import(__use_no_semihosting)

//標準庫需要的支持函數

struct __FILE

{

int handle;

};

FILE __stdout;

//定義_sys_exit()以避免使用半主機模式

_sys_exit(int x)

{

x = x;

}

//重定義fputc函數

int fputc(int ch, FILE *f)

{

while((USART2->SR&0X40)==0);//循環(huán)發(fā)送,直到發(fā)送完畢

USART2->DR = (u8) ch;

return ch;

}

#endif

/*使用microLib的方法*/

/*

int fputc(int ch, FILE *f)

{

USART_SendData(USART1, (uint8_t) ch);

while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) {}

return ch;

}

int GetKey (void) {

while (!(USART1->SR & USART_FLAG_RXNE));

return ((int)(USART1->DR & 0x1FF));

}

*/

#if EN_USART1_RX //如果使能了接收

//串口1中斷服務程序

//注意,讀取USARTx->SR能避免莫名其妙的錯誤

u8 USART_RX_BUF[USART_REC_LEN]; //接收緩沖,最大USART_REC_LEN個字節(jié).

//接收狀態(tài)

//bit15, 接收完成標志

//bit14, 接收到0x0d

//bit13~0, 接收到的有效字節(jié)數目

u16 USART_RX_STA=0; //接收狀態(tài)標記

u8 USART2_RX_BUF[USART_REC_LEN]; //接收緩沖,最大USART_REC_LEN個字節(jié).

//接收狀態(tài)

//bit15, 接收完成標志

//bit14, 接收到0x0d

//bit13~0, 接收到的有效字節(jié)數目

u16 USART2_RX_STA=0; //接收狀態(tài)標記

void uart_init(u32 bound){

//GPIO端口設置

GPIO_InitTypeDef GPIO_InitStructure;

USART_InitTypeDef USART_InitStructure;

NVIC_InitTypeDef NVIC_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); //使能USART1,GPIOA時鐘

//USART1_TX GPIOA.9

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //復用推挽輸出

GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9

//USART1_RX GPIOA.10初始化

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空輸入

GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10

//Usart1 NVIC 配置

NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//搶占優(yōu)先級3

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //子優(yōu)先級3

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能

NVIC_Init(&NVIC_InitStructure); //根據指定的參數初始化VIC寄存器

//USART 初始化設置

USART_InitStructure.USART_BaudRate = bound;//串口波特率

USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字長為8位數據格式

USART_InitStructure.USART_StopBits = USART_StopBits_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; //收發(fā)模式

USART_Init(USART1, &USART_InitStructure); //初始化串口1

USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//開啟串口接受中斷

USART_Cmd(USART1, ENABLE); //使能串口1

}

void uart2_init(u32 bound){

//GPIO端口設置

//GPIO端口設置

GPIO_InitTypeDef GPIO_InitStructure;

USART_InitTypeDef USART_InitStructure;

NVIC_InitTypeDef NVIC_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能GPIOA時鐘

RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE); //使能USART2

//USART2_TX GPIOA.2

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //PA.2

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //復用推挽輸出

GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.2

//USART1_RX GPIOA.3初始化

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;//PA3

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空輸入

GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.3

//Usart2 NVIC 配置

NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//搶占優(yōu)先級3

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; //子優(yōu)先級3

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能

NVIC_Init(&NVIC_InitStructure); //根據指定的參數初始化VIC寄存器

//USART 初始化設置

USART_InitStructure.USART_BaudRate = bound;//串口波特率

USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字長為8位數據格式

USART_InitStructure.USART_StopBits = USART_StopBits_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; //收發(fā)模式

USART_Init(USART2, &USART_InitStructure); //初始化串口2

USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);//開啟串口接受和發(fā)送中斷

USART_Cmd(USART2, ENABLE);

}

void USART2_IRQHandler(void) //??2??????

{

u8 Res,t;

/

if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收中斷(接收到的數據必須是0x0d 0x0a結尾)

{

Res =USART_ReceiveData(USART2); //讀取接收到的數據

if((USART2_RX_STA&0x8000)==0)//接收未完成

{

if(USART2_RX_STA&0x4000)//接收到了0x0d

{

if(Res!=0x0a)USART2_RX_STA=0;//接收錯誤,重新開始

else USART2_RX_STA|=0x8000; //接收完成了

}

else //還沒收到0X0D

{

if(Res==0x0d)USART2_RX_STA|=0x4000;

else

{

USART2_RX_BUF[USART2_RX_STA&0X3FFF]=Res ;

USART2_RX_STA++;

if(USART2_RX_STA>(USART2_REC_LEN-1))USART2_RX_STA=0;//接收數據錯誤,重新開始接收

}

}

}

}

}

void USART1_IRQHandler(void) //串口1中斷服務程序

{

u8 Res;

char result[100];

char hex_string[30];

#if SYSTEM_SUPPORT_OS //如果SYSTEM_SUPPORT_OS為真,則需要支持OS.

OSIntEnter();

#endif

if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中斷(接收到的數據必須是0x0d 0x0a結尾)

{

Res =USART_ReceiveData(USART1); //讀取接收到的數據

sprintf(hex_string,"%02X", Res);

//printf("%srn",hex_string);

sscanf(hex_string + 5, "%s", hex_string);

if(!strcmp(hex_string,"03"))

{

GPIO_ResetBits(GPIOB,GPIO_Pin_5);

GPIO_ResetBits(GPIOE,GPIO_Pin_5);

}

if(!strcmp(hex_string,"04"))

{

GPIO_SetBits(GPIOB,GPIO_Pin_5);

GPIO_SetBits(GPIOE,GPIO_Pin_5);

}

if((USART_RX_STA&0x8000)==0)//接收未完成

{

if(USART_RX_STA&0x4000)//接收到了0x0d

{

if(Res!=0x0a)USART_RX_STA=0;//接收錯誤,重新開始

else USART_RX_STA|=0x8000; //接收完成了

}

else //還沒收到0X0D

{

if(Res==0x0d)USART_RX_STA|=0x4000;

else

{

USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;

USART_RX_STA++;

if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//接收數據錯誤,重新開始接收

}

}

}

}

#if SYSTEM_SUPPORT_OS //如果SYSTEM_SUPPORT_OS為真,則需要支持OS.

OSIntExit();

#endif

}

#endif

總結

兄弟們,太強了,25塊錢能夠抗噪聲的語音識別播報一體模塊,還要什么自行車。就是喚醒詞不能自己定制,需要聯(lián)系技術人員幫你定制。(可以遠程)

————————————————

雷龍發(fā)展公司致力于為客戶提供一站式的離線語音解決方案。我們的服務涵蓋了多個領域,包括家電、醫(yī)療器械、安防報警、汽車電子、多媒體、通信、電話錄音、工業(yè)自動化控制、玩具及互動消費類產品等。通過我們的專業(yè)知識和經驗,我們能夠滿足各類產品的語音交互需求,讓用戶享受更加智能、便捷的使用體驗。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2310

    文章

    11169

    瀏覽量

    373712
  • 智能家居
    +關注

    關注

    1944

    文章

    10004

    瀏覽量

    197556
  • 人機語音
    +關注

    關注

    0

    文章

    3

    瀏覽量

    7237
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何用鎖相放大器實現高精度LCR測量

    在現代電子測量中,LCR測量(電感、電容、電阻)的精度直接影響到電路設計與系統(tǒng)穩(wěn)定性。傳統(tǒng)方法易受噪聲干擾與相位漂移影響,難以實現高精度檢測。而結合鎖相放大技術的測量方案,憑借其卓越的
    的頭像 發(fā)表于 03-04 17:36 ?973次閱讀
    如何用鎖相放大器實現<b class='flag-5'>高精度</b>LCR測量

    深入了解OP27:低噪聲、高精度運算放大器的卓越之選

    ,一直以來都備受工程師們的青睞。今天,我們就來深入剖析OP27的特點、性能及應用。 文件下載: OP27.pdf 特性概述 低噪聲高精度 OP27結合了OP07的低失調和低漂移特性,同時具備高速和低
    的頭像 發(fā)表于 01-27 09:30 ?447次閱讀

    高精度噪聲運放OP2177的特性與應用解析

    OP07放大器家族的第四代產品。它具有高精度、低噪聲的特點,結合了極低的失調電壓和非常低的輸入偏置電流。與JFET放大器不同,其低偏置
    的頭像 發(fā)表于 01-26 09:45 ?338次閱讀

    高性能雙路運算放大器OP270:低噪聲高精度的完美結合

    高性能雙路運算放大器OP270:低噪聲高精度的完美結合 在電子工程師的日常設計中,運算放大器是不可或缺的基礎元件。今天我們要深入探討的是Analog Devices推出的一款高性能雙路運算放大器
    的頭像 發(fā)表于 01-25 17:30 ?1003次閱讀

    高精度、低噪聲運放AD8674的特性與應用

    高精度、低噪聲運放AD8671/AD8672/AD8674的特性與應用 在電子工程師的日常設計工作中,選擇合適的運算放大器是至關重要的。今天,我們就來深入探討Analog Devices公司推出
    的頭像 發(fā)表于 01-25 14:55 ?613次閱讀

    探索ADA4610系列JFET運放:高精度與高性能的完美結合

    探索ADA4610系列JFET運放:高精度與高性能的完美結合 在電子設計領域,運算放大器是一個至關重要的元件,它的性能直接影響到整個系統(tǒng)的精度和穩(wěn)定性。今天,我們要深入探討的是Analog
    的頭像 發(fā)表于 01-22 15:20 ?201次閱讀

    用吉時利源表2636B實現高精度電阻測量的方法

    吉時利源表2636B作為一款高性能的源測量單元(SMU),憑借其低噪聲、高精度和多功能特性,在電子測試領域廣泛應用于精密電阻測量。本文將從測量原理、操作步驟、注意事項及優(yōu)化技巧等方面,系統(tǒng)介紹如何利用該儀器實現
    的頭像 發(fā)表于 01-04 17:31 ?607次閱讀
    用吉時利源表2636<b class='flag-5'>B</b>實現<b class='flag-5'>高精度</b>電阻測量的方法

    探索Littelfuse CH1B032B電流傳感器:高精度與可靠性的完美結合

    探索Littelfuse CH1B032B電流傳感器:高精度與可靠性的完美結合 在電子工程師的日常工作中,電流傳感器是不可或缺的關鍵組件,它廣泛應用于電池管理系統(tǒng)等眾多領域。今天,我們就來深入探討
    的頭像 發(fā)表于 12-15 14:55 ?418次閱讀

    Telaire T6793 CO? 傳感器模塊高精度與便捷性的完美結合

    Telaire T6793 CO? 傳感器模塊高精度與便捷性的完美結合 在如今注重室內空氣質量和能源節(jié)約的時代,準確測量和控制二氧化碳(CO?)水平變得至關重要。Telaire T6793 CO
    的頭像 發(fā)表于 12-12 14:35 ?391次閱讀

    大容量高精度電子工牌智慧工廠之應用

    、環(huán)”全要素的實時數字化管控。一、核心功能與優(yōu)勢功能模塊技術參數應用場景室內外高精度定位:室內環(huán)境基于UWB技術,定位精度達5cm,抗工業(yè)干擾能力強,人員實時軌跡追蹤、電子圍欄越界報警
    的頭像 發(fā)表于 08-14 12:19 ?904次閱讀
    大容量<b class='flag-5'>高精度</b>電子工牌智慧工廠之應用

    單天線高精度導航?組合導航如何做到低成本與高性能兼得?

    在無人機、自動駕駛和航空導航領域,高精度組合導航系統(tǒng)是核心需求,但傳統(tǒng)雙天線方案的高成本和復雜結構讓許多用戶望而卻步。ER-GNSS/MINS-07?應運而生,它采用單天線全系統(tǒng)雙頻GNSS模塊
    的頭像 發(fā)表于 07-24 15:06 ?587次閱讀
    單天線<b class='flag-5'>也</b><b class='flag-5'>能</b><b class='flag-5'>高精度</b>導航?組合導航如何做到低成本與高性能兼得?

    芯資訊|唯創(chuàng)電子WTU201F2 B004 紅外接近模塊:開啟衛(wèi)生間沖水箱智能潔凈新時代

    在現代衛(wèi)生間設施的智能化浪潮中,廣州唯創(chuàng)電子推出的WTU201F2B004紅外接近感應模塊,正以其卓越性能重新定義沖水箱的運作方式。這款集高精度檢測、超低功耗與智能調距于一體的核心組件,為智能衛(wèi)浴
    的頭像 發(fā)表于 06-09 08:43 ?573次閱讀
    芯資訊|唯創(chuàng)電子WTU<b class='flag-5'>201</b>F2 <b class='flag-5'>B</b>004 紅外接近<b class='flag-5'>模塊</b>:開啟衛(wèi)生間沖水箱智能潔凈新時代

    高精度組合導航系統(tǒng):技術與應用的革新者

    組合導航系統(tǒng)集成了MEMS?慣性導航與多頻點雙天線?GNSS?,憑借其高精度、高可靠性和強適應性,成為航空、陸地及航海復雜場景下的理想選擇。ER-GNSS/MINS-03結合智能算法,提供連續(xù)、穩(wěn)定的定位、姿態(tài)和速度信息,在衛(wèi)
    的頭像 發(fā)表于 05-09 16:13 ?736次閱讀

    云翎智能單北斗可定制RTK高精度記錄儀如何賦鐵路巡檢安全

    執(zhí)法記錄儀技術革新:破解復雜環(huán)境定位難題厘米級高精度定位:依托北斗三號全球衛(wèi)星導航系統(tǒng),結合RTK技術,實現水平定位精度±1cm,高程精度±
    的頭像 發(fā)表于 04-16 14:06 ?886次閱讀
    云翎智能單北斗可定制RTK<b class='flag-5'>高精度</b>記錄儀如何賦<b class='flag-5'>能</b>鐵路巡檢安全

    高精度交流充電樁負載方案

    的電能計量精度,同時滿足復雜工況模擬與效分析需求。本文從核心技術維度解析新一代高精度測試方案的設計要點。 一、多模態(tài)電能重構技術 系統(tǒng)采用模塊化功率單元堆疊架構,每個7kW單元內置碳
    發(fā)表于 04-15 11:07