|
史上最全!!!LD3320語音識(shí)別模塊資料,經(jīng)測(cè)試,本資料是沒問題,壓縮包里包含原理圖,接線圖,以及LD3320芯片手冊(cè)和PCB庫(kù)參考文件等諸多資料
12.png (222.98 KB, 下載次數(shù): 69)
下載附件
模塊外形2
2018-11-15 15:47 上傳
11.png (261.01 KB, 下載次數(shù): 58)
下載附件
模塊外形1
2018-11-15 15:47 上傳
13.png (11 KB, 下載次數(shù): 65)
下載附件
目錄1
2018-11-15 15:47 上傳
14.png (10.97 KB, 下載次數(shù): 63)
下載附件
目錄2
2018-11-15 15:47 上傳
1、本程序工程采用keil4編譯通過,如打不開或出現(xiàn)錯(cuò)誤,請(qǐng)按照keil 4編譯器。
電路原理圖如下:
0.png (206.11 KB, 下載次數(shù): 65)
下載附件
2018-11-15 16:15 上傳
stm32單片機(jī)程序源程序如下:
- /***************************飛音云電子****************************
- ** 文件名稱:LDV4語音識(shí)別開發(fā)板 基礎(chǔ)版驅(qū)動(dòng)程序
- ** CPU: STM32f103RCT6
- ** 晶振:8MHZ
- ** 波特率:9600 bit/S
- ** 說明:本程序 具備語音識(shí)別、串口通信、開發(fā)板基本功能演示。
- ** 說明:本程序修改于 ICRoute公司 配套的源程序,版權(quán)歸其所有。
- ***************************飛音云電子******************************/
- #include "includes.h"
- /*************端口信息********************
- * 接線說明
- LD3320接口 STM32接口
- * RST PB6
- * CS PB8
- * WR/SPIS PB9
- * P2/SDCK PB3
- * P1/SDO PB4
- * P0/SDI PB5
- * IRQ PC1
- * A0 PB7
- * RD PA0
- --------------------------
- * K1 RST (復(fù)位鍵)
- * K2 PA1 (U盤處罰按鍵)
- * K3 PA2 (未定義功能)
- * LED1 PC4 (流水燈)
- * LED2 PC2 (流水燈)
- * LED3 PC3 (流水燈)
- * LED4 PC0 (流水燈)
- *****************************************/
- /************************************************************************************
- // nAsrStatus 用來在main主程序中表示程序運(yùn)行的狀態(tài),不是LD3320芯片內(nèi)部的狀態(tài)寄存器
- // LD_ASR_NONE: 表示沒有在作ASR識(shí)別
- // LD_ASR_RUNING: 表示LD3320正在作ASR識(shí)別中
- // LD_ASR_FOUNDOK: 表示一次識(shí)別流程結(jié)束后,有一個(gè)識(shí)別結(jié)果
- // LD_ASR_FOUNDZERO: 表示一次識(shí)別流程結(jié)束后,沒有識(shí)別結(jié)果
- // LD_ASR_ERROR: 表示一次識(shí)別流程中LD3320芯片內(nèi)部出現(xiàn)不正確的狀態(tài)
- *********************************************************************************/
- uint8 nAsrStatus=0;
- void LD3320_Init(void);
- uint8 RunASR(void);
- void ProcessInt0(void);
- void LD3320_EXTI_Cfg(void);
- void LD3320_Spi_cfg(void);
- void LD3320_GPIO_Cfg(void);
- void LED_gpio_cfg(void);
- extern void PrintComBit(USART_TypeDef* USARTx, uint8_t Data);
- /***********************************************************
- * 名 稱: LD3320_main(void)
- * 功 能: 主函數(shù)LD3320程序入口
- * 入口參數(shù):
- * 出口參數(shù):
- * 說 明:
- * 調(diào)用方法:
- **********************************************************/
- void LD3320_main(void)
- {
- uint8 nAsrRes=0;
- LD3320_Init();
- Glide_LED();
- while(1)
- {
- switch(nAsrStatus)
- {
- case LD_ASR_RUNING:
- case LD_ASR_ERROR:
- break;
- case LD_ASR_NONE:
- nAsrStatus=LD_ASR_RUNING;
- if (RunASR()==0) // 啟動(dòng)一次ASR識(shí)別流程:ASR初始化,ASR添加關(guān)鍵詞語,啟動(dòng)ASR運(yùn)算
- {
- nAsrStatus = LD_ASR_ERROR;
- }
- break;
- case LD_ASR_FOUNDOK:
- nAsrRes = LD_GetResult( ); //識(shí)別成功自動(dòng) 獲取識(shí)別碼,識(shí)別碼在LDChip.h文件中,自行定義的數(shù)據(jù)
- PrintComBit(USART1,nAsrRes ); //串口輸出識(shí)別碼
- Board_text(nAsrRes );//開發(fā)板測(cè)試演示部分---對(duì)識(shí)別碼的進(jìn)行判斷做出動(dòng)作 (用戶亦可以添加自己的功能,例如控制IO口輸出,串口數(shù)據(jù)輸出等)
- nAsrStatus = LD_ASR_NONE;
- break;
-
- case LD_ASR_FOUNDZERO:
- default: nAsrStatus = LD_ASR_NONE;
- break;
- }//switch
- }// while
- }
- /***********************************************************
- * 名 稱:LD3320_Init(void)
- * 功 能:模塊驅(qū)動(dòng)端口初始配置
- * 入口參數(shù):
- * 出口參數(shù):
- * 說 明:
- * 調(diào)用方法:
- **********************************************************/
- void LD3320_Init(void)
- {
- LD3320_GPIO_Cfg();
- LD3320_EXTI_Cfg();
- LD3320_Spi_cfg();
- LED_gpio_cfg();
- LD_reset();
-
- }
- /***********************************************************
- * 名 稱: RunASR(void)
- * 功 能: 運(yùn)行ASR
- * 入口參數(shù):
- * 出口參數(shù):
- * 說 明:
- * 調(diào)用方法:
- **********************************************************/
- uint8 RunASR(void)
- {
- uint8 i=0;
- uint8 asrflag=0;
- for (i=0; i<5; i++) // 防止由于硬件原因?qū)е翷D3320芯片工作不正常,所以一共嘗試5次啟動(dòng)ASR識(shí)別流程
- {
- LD_AsrStart(); //初始化ASR
- LD3320_delay(100);
- if (LD_AsrAddFixed()==0) //添加關(guān)鍵詞語到LD3320芯片中
- {
- LD_reset(); // LD3320芯片內(nèi)部出現(xiàn)不正常,立即重啟LD3320芯片
- LD3320_delay(50); // 并從初始化開始重新ASR識(shí)別流程
- continue;
- }
- LD3320_delay(10);
- if (LD_AsrRun() == 0)
- {
- LD_reset(); // LD3320芯片內(nèi)部出現(xiàn)不正常,立即重啟LD3320芯片
- LD3320_delay(50); // 并從初始化開始重新ASR識(shí)別流程
- continue;
- }
- asrflag=1;
- break; // ASR流程啟動(dòng)成功,退出當(dāng)前for循環(huán)。開始等待LD3320送出的中斷信號(hào)
- }
- return asrflag;
- }
- /***********************************************************
- * 名 稱: void Delay_( int i)
- * 功 能: 短延時(shí)
- * 入口參數(shù):
- * 出口參數(shù):
- * 說 明:
- * 調(diào)用方法:
- **********************************************************/
- void Delay_( int i)
- {
- while( i--)
- {
- }
- }
- /***********************************************************
- * 名 稱: LD3320_delay(unsigned long uldata)
- * 功 能: 長(zhǎng)延時(shí)函數(shù)
- * 入口參數(shù):
- * 出口參數(shù):
- * 說 明:
- * 調(diào)用方法:
- **********************************************************/
- void LD3320_delay(unsigned long uldata)
- {
- unsigned int j = 0;
- unsigned int g = 0;
- for (j=0;j<5;j++)
- {
- for (g=0;g<uldata;g++)
- {
- Delay_(120);
- }
- }
- }
- /***********************************************************
- * 名 稱:LD3320_GPIO_Cfg(void)
- * 功 能:初始化需要用到的IO口
- * 入口參數(shù):
- * 出口參數(shù):
- * 說 明:
- * 調(diào)用方法:
- **********************************************************/
- void LD3320_GPIO_Cfg(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- // 配置PA8 輸出 8M 波形
- //定義RST/A0/CS端口
- {
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB ,ENABLE);
- //LD_CS /RSET
- GPIO_InitStructure.GPIO_Pin =GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_Init(GPIOB,&GPIO_InitStructure);
- GPIO_SetBits(GPIOB,GPIO_Pin_7); /*A0默認(rèn)拉高*/
- }
- }
- /***********************************************************
- * 名 稱:LD3320_Spi_cfg(void)
- * 功 能:配置SPI功能和端口初始化
- * 入口參數(shù):
- * 出口參數(shù):
- * 說 明:
- * 調(diào)用方法:
- **********************************************************/
- void LD3320_Spi_cfg(void)
- {
- SPI_InitTypeDef SPI_InitStructure;
- GPIO_InitTypeDef GPIO_InitStructure;
- //spi端口配置
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI3 | RCC_APB2Periph_GPIOB,ENABLE); //使能SPI3外設(shè)時(shí)鐘
- GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
- //P0/P1/P2
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_4 | GPIO_Pin_3;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
- GPIO_Init(GPIOB,&GPIO_InitStructure);
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //spis 片選 WR
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_Init(GPIOB, &GPIO_InitStructure);
-
- LD_CS_H();
-
- //spi功能配置
- SPI_Cmd(SPI3, DISABLE);
- /* SPI3 配置 */
- SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; //全雙工
- SPI_InitStructure.SPI_Mode = SPI_Mode_Master; //主模式
- SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; //8位
- SPI_InitStructure.SPI_CPOL = SPI_CPOL_High; //時(shí)鐘極性 空閑狀態(tài)時(shí),SCK保持低電平
- SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge; //時(shí)鐘相位 數(shù)據(jù)采樣從第一個(gè)時(shí)鐘邊沿開始
- SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; //軟件產(chǎn)生NSS
- SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_64; //波特率控制 SYSCLK/128
- SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; //數(shù)據(jù)高位在前
- SPI_InitStructure.SPI_CRCPolynomial = 7; //CRC多項(xiàng)式寄存器初始值為7
- SPI_Init(SPI3, &SPI_InitStructure);
- /* 使能SPI3 */
- SPI_Cmd(SPI3, ENABLE);
- }
- /***********************************************************
- * 名 稱: LD3320_EXTI_Cfg(void)
- * 功 能: 外部中斷功能配置和相關(guān)端口配置
- * 入口參數(shù):
- * 出口參數(shù):
- * 說 明:
- * 調(diào)用方法:
- **********************************************************/
- void LD3320_EXTI_Cfg(void)
- {
- EXTI_InitTypeDef EXTI_InitStructure;
- NVIC_InitTypeDef NVIC_InitStructure;
- GPIO_InitTypeDef GPIO_InitStructure;
- //定義IRQ中斷引腳配置
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
- GPIO_InitStructure.GPIO_Pin =GPIO_Pin_1;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOC, &GPIO_InitStructure);
- //外部中斷線配置
- GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource1);
- EXTI_InitStructure.EXTI_Line = EXTI_Line1;
- EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
- EXTI_InitStructure.EXTI_Trigger =EXTI_Trigger_Falling;
- EXTI_InitStructure.EXTI_LineCmd = ENABLE;
- EXTI_Init(&EXTI_InitStructure);
- EXTI_GenerateSWInterrupt(EXTI_Line1);
-
- GPIO_SetBits(GPIOC,GPIO_Pin_1); //默認(rèn)拉高中斷引腳
- EXTI_ClearFlag(EXTI_Line1);
- EXTI_ClearITPendingBit(EXTI_Line1);
- //中斷嵌套配置
- NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn;
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure);
- }
- /***********************************************************
- * 名 稱: EXTI1_IRQHandler(void)
- * 功 能: 外部中斷函數(shù)
- * 入口參數(shù):
- * 出口參數(shù):
- * 說 明:
- * 調(diào)用方法:
- **********************************************************/
- void EXTI1_IRQHandler(void)
- {
- if(EXTI_GetITStatus(EXTI_Line1)!= RESET )
- {
- ProcessInt0();
- EXTI_ClearFlag(EXTI_Line1);
- EXTI_ClearITPendingBit(EXTI_Line1);
- }
- }
復(fù)制代碼
51單片機(jī)程序:
所有資料51hei提供下載:
LD3320模塊開發(fā)首選資料.zip
(5.04 MB, 下載次數(shù): 312)
2018-11-15 15:49 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|