加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

基于LD3320的語音識別模塊LD-V7使用記錄

08/09 09:51
852
服務支持:
技術交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術大咖們分享疑惑和經(jīng)驗、收獲成長和認同、領取優(yōu)惠和紅包等。

虛擬商品不可退

當前內(nèi)容為數(shù)字版權作品,購買后不支持退換且無法轉移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
放大
實物圖
相關方案
  • 方案介紹
  • 相關文件
  • 推薦器件
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

硬件平臺

stm32f103c8t6,LD-V7語音識別模塊

語音模塊介紹

在這里插入圖片描述
重點?。?/p>

串口通信

語音模塊串口發(fā)送的內(nèi)容(被修改了,不是出廠內(nèi)容,修改步驟看資料)

			 switch(dat)		   /*對結果執(zhí)行相關操作,客戶可刪除Printcom 串口輸出語句替換為其他需要控制的代碼*/
			  {
				  case CODE_DMCS:			/*命令“亮一點”*/
						PrintCom("亮一點rn"); /*text.....*/
													 break;
					case CODE_KFBYZ:	 /*命令“變暗”*/
						PrintCom("變暗rn"); /*text.....*/
													 break;
					case CODE_KD:		/*命令“開燈”*/				
						PrintCom("開燈rn"); /*text.....*/
													break;
					case CODE_GD:		/*命令“關燈”*/				
						PrintCom("關燈rn"); /*text.....*/
													break;
					case CODE_BJ:		/*命令“亮度30”*/				
						PrintCom("亮度30rn"); /*text.....*/
													break;
					case CODE_SH:		/*命令“亮度60”*/				
						PrintCom("亮度60rn"); /*text.....*/
													break;
					case CODE_GZ:		/*命令“亮度100”*/				
						PrintCom("亮度100rn"); /*text.....*/
													break;																											
							default:PrintCom("請重新識別發(fā)口令rn"); /*text.....*/break;
				}	
			}	
			else 	
			{
				PrintCom("請說出一級口令rn"); /*text.....*/	
			}

STM32C8T6接收

主要分為串口中斷,超時方式接收,比較
超時方式接收被放到了主循環(huán),配合串口中斷使用,是一個不太成熟的函數(shù),不過用在這里綽綽有余。

//串口中斷函數(shù):
 u8 rev_buf[100];//接收緩沖區(qū)
 u8 addr=0;     //地址偏移量
 u8 revice_ok=0;//接收完成標志
 u8 revice_start=0;//開始接收受標志
 u32 time_out=0;//超時計數(shù)值
//串口1中斷服務函數(shù)

void USART1_IRQHandler(void)
{
	u8 data;
	
	data=USART1->DR;//讀取同時會清除標志
	rev_buf[addr++]=data;
	//printf("addr:%drn",addr);
	
	revice_start=1;//開始接收
	time_out=0;//超級計數(shù)值清零
}
//串口中斷接收函數(shù)
int ld3320_uart_receive(void)
{
	//char * buf = NULL;
	int num = 0;
	if(revice_ok)
	{
			revice_ok=0;//清標志
			printf("%srn",rev_buf);
		
			printf("%srn",rev_buf);
			printf("rev_buf is ok rn");
		  num = compare_usart((char *) rev_buf);
		 return num;
		}
	
	if(revice_start)//開始接收
	{
			Main_delay();
			time_out++;
		  num=0;
			if(time_out>=50)//超時就
			{
				revice_ok=1;
				rev_buf[addr]='?';
				addr=0;
				time_out=0;
				revice_start=0;
			}
	}
	return 0;
}
//比較
/*
對比的BUF是直接定好的,宏定義方便使用
#define BUF_XIAOCHEN "收到rn"
#define BUF_LIANG    "亮一點rn"
#define BUF_AN       "變暗rn"
#define BUF_KAI      "開燈rn"
#define BUF_GUAN     "關燈rn"
#define BUF_SANSHI   "亮度30rn"
#define BUF_LIUSHI   "亮度60rn"
#define BUF_YIBAI    "亮度100rn"
#define BUF_CONGFA   "請重新識別發(fā)口令rn"
#define BUF_FA       "請說出一級口令rn"
*/
int compare_usart(char * string_data)
{
		if(strcmp(string_data, ( char *)BUF_XIAOCHEN) == 0)     //比較接受字符內(nèi)容   收到
		{
			
			printf("this is compare  return 1rn");
     return 1;
		}
		else if(strcmp((char *)rev_buf, (char *)BUF_LIANG) == 0)
		{
		 return 2;
		}
	
		else if(strcmp((char *)rev_buf, (char *)BUF_AN) == 0)
		{
		 return 3;
		}
		
		else if(strcmp((char *)rev_buf, (char *)BUF_KAI) == 0)
		{
		 return 4;
		}
				else if(strcmp((char *)rev_buf, (char *)BUF_GUAN) == 0)
		{
		 return 5;
		}
				else if(strcmp((char *)rev_buf, (char *)BUF_SANSHI) == 0)
		{
		 return 6;
		}
				else if(strcmp((char *)rev_buf, (char *)BUF_LIUSHI) == 0)
		{
		 return 7;
		}
				else if(strcmp((char *)rev_buf, (char *)BUF_YIBAI) == 0)
		{
		 return 8;
		}
		
		else if(strcmp((char *)rev_buf, (char *)BUF_CONGFA) == 0)
		{
		 return 9;
		}
		
		else if(strcmp((char *)rev_buf, (char *)BUF_FA) == 0)
		{
		 return 10;
		}
		
	return 0;
}

經(jīng)過這三步,就可以在主循環(huán)得到返回值,根據(jù)返回數(shù)值執(zhí)行對應操作。

		j=ld3320_uart_receive();//得到接受函數(shù)的字符串buff
		//i=compare_usart(buff);     //字符串buff和已知字符串對比的值
		//i=1;
		printf("j = %drn",j);
		switch(j)
		{

			case 1:
				//printf("1rn");
			  OLED_ShowChar(48,6,1);
				//OLED_Clear(); 
			break;//小陳
			case 2: printf(" switch :2rn");break;//亮一點
			case 3: printf(" switch :3rn");break;//變暗
			case 4: printf(" switch :4rn");break;//開燈
			case 5: printf(" switch :5rn");break;//關燈
			case 6: printf(" switch :6rn");break;//
			case 7: printf(" switch :7rn");break;//
			case 8: printf(" switch :8rn");break;//
			case 9: printf(" switch :9rn");break;//請重新識別發(fā)口令
			case 10: printf(" switch :10rn");break;//請說出一級口令
			//case 11: printf("11rn");break;//
			default:break;
		}
	}	
  • 設計資料獲取聯(lián)系方式.doc

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
PIC32MX575F512H-80I/PT 1 Microchip Technology Inc 32-BIT, FLASH, 80 MHz, RISC MICROCONTROLLER, PQFP64, 10 X 10 MM, 1 MM HEIGHT, LEAD FREE, PLASTIC, TQFP-64

ECAD模型

下載ECAD模型
$9 查看
ATMEGA88PA-MMHR 1 Atmel Corporation RISC Microcontroller, 8-Bit, FLASH, AVR RISC CPU, 20MHz, CMOS, PQCC28, 4 X 4 MM, 1 MM HEIGHT, 0.45 MM PITCH, GREEN, PLASTIC, VQFN-28
$2.43 查看
STM32H743VIT6TR 1 STMicroelectronics High-performance and DSP with DP-FPU, Arm Cortex-M7 MCU with 2MBytes of Flash memory, 1MB RAM, 480 MHz CPU, Art Accelerator, L1 cache, external memory interface, large set of peripherals

ECAD模型

下載ECAD模型
暫無數(shù)據(jù) 查看

相關推薦

電子產(chǎn)業(yè)圖譜