• 大小: 1.82MB
    文件类型: .7z
    金币: 1
    下载: 0 次
    发布日期: 2023-09-02
  • 语言: 其他
  • 标签: LD3320  stm32f407  

资源简介

这是使用正点原子探索者开发板实现的LD3320语音识别程序,使用的是spi通信方式,模块唤醒呼叫小李子,要插sd卡,用串口调试助手打印

资源截图

代码片段和文件信息

#include “wifi.h“

/////////////////////////////////////////////////////////////////////////////////////////////////////////// 
//用户配置区

//连接端口号:8000可自行修改为其他端口.
const char* portnum=“8000“;  

//WIFI STA模式设置要去连接的路由器无线参数请根据你自己的路由器设置自行修改.
const char* sta_ssid=“nubia“; //路由器SSID号
const char* sta_encryption=“wpawpa2_aes“; //wpa/wpa2 aes加密方式
const char* sta_password=“123456789“;  //连接密码

//WIFI AP模式模块对外的无线参数可自行修改.
const char* ap_ssid=“ESP8266“; //对外SSID号
const char* ap_encryption=“wpawpa2_aes“; //wpa/wpa2 aes加密方式
const char* ap_password=“123456789“;  //连接密码 

//usmart支持部分
//将收到的AT指令应答数据返回给电脑串口
//mode:0不清零USART3_RX_STA;
//     1清零USART3_RX_STA;
void atk_8266_at_response(u8 mode)
{
if(USART3_RX_STA&0X8000) //接收到一次数据了

USART3_RX_BUF[USART3_RX_STA&0X7FFF]=0;//添加结束符
printf(“%s“USART3_RX_BUF); //发送到串口
if(mode)USART3_RX_STA=0;

}
//ESP8266发送命令后检测接收到的应答
//str:期待的应答结果
//返回值:0没有得到期待的应答结果
//    其他期待应答结果的位置(str的位置)
u8* ESP8266_check_cmd(u8 *str)
{

char *strx=0;
if(USART3_RX_STA&0X8000) //接收到一次数据了

USART3_RX_BUF[USART3_RX_STA&0X7FFF]=0;//添加结束符
strx=strstr((const char*)USART3_RX_BUF(const char*)str);
}
return (u8*)strx;
}
//向ESP8266发送命令
//cmd:发送的命令字符串
//ack:期待的应答结果如果为空则表示不需要等待应答
//waittime:等待时间(单位:10ms)
//返回值:0发送成功(得到了期待的应答结果)
//       1发送失败
u8 ESP8266_send_cmd(u8 *cmdu8 *acku16 waittime)
{
u8 res=0; 
USART3_RX_STA=0;
u3_printf(“%s\r\n“cmd); //发送命令
if(ack&&waittime) //需要等待应答
{
while(--waittime) //等待倒计时
{
delay_ms(10);
if(USART3_RX_STA&0X8000)//接收到期待的应答结果
{
if(ESP8266_check_cmd(ack))
{
printf(“%s ack:%s\r\n\r\n“cmdack);//串口1打印命令应答
break;//得到有效数据 
}
USART3_RX_STA=0;

}
if(waittime==0)res=1; 
}
return res;

//向ESP8266发送指定数据
//data:发送的数据(不需要添加回车了)
//ack:期待的应答结果如果为空则表示不需要等待应答
//waittime:等待时间(单位:10ms)
//返回值:0发送成功(得到了期待的应答结果)luojian
u8 ESP8266_send_data(u8 *datau8 *acku16 waittime)
{
u8 res=0; 
USART3_RX_STA=0;
u3_printf(“%s“data); //发送命令
if(ack&&waittime) //需要等待应答
{
while(--waittime) //等待倒计时
{
delay_ms(10);
if(USART3_RX_STA&0X8000)//接收到期待的应答结果
{
if(ESP8266_check_cmd(ack))
{
printf(“send %s\r\n“data);
break;//得到有效数据
}
USART3_RX_STA=0;

}
if(waittime==0)res=1; 
}
return res;
}
//ESP8266退出透传模式
//返回值:0退出成功;
//       1退出失败
u8 ESP8266_quit_trans(void)
{
while((USART3->SR&0X40)==0); //等待发送空
USART3->DR=‘+‘;      
delay_ms(15); //大于串口组帧时间(10ms)
while((USART3->SR&0X40)==0); //等待发送空
USART3->DR=‘+‘;      
delay_ms(15); //大于串口组帧时间(10ms)
while((USART3->SR&0X40)==0); //等待发送空
USART3->DR=‘+‘;      
delay_ms(500); //等待500ms
return ESP8266_send_cmd(“AT““OK“20);//退出透传判断.
}
///////////////////////////////////////////////////////////////////////////////////////////
//获取ESP8266模块的连接状态
//返回值:0未连接;1连接成功.
u8 ESP8266_consta(void)
{
u8 *p;
u8 res;
if(ESP8266_quit_t

评论

共有 条评论