资源简介
这是使用正点原子探索者开发板实现的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
相关资源
- 基于stm32F407的音乐播放器
- STM32F407系统时钟设置程序STM32F4xx_Clo
- 基于STM32F407开发板驱动触摸屏原子
- STM32F407四路12位AD采样
- FreeModbus--RTU--Master+Slave--uCOSIII--STM32F
- 旋钮编码器STM32F407
- 通过串口控制呼吸灯的频率
- STM32F407 USB 自定义HID实现代码
- STM32F407 DMA+串口接收不定长数据程序
- 实验9X stm32F407zgt6_PWM控制SG90输出实验
- ARM stm32f407 开发板原理图及 PCB图
- 语音识别模块LD3320驱动程序stm32
- 基于stm32f407输入捕获实验
- stm32f407+ov7725
- 基于STM32F407(1HZ~3MHZ)频率测量2%误差
- LD3320程序+原理图.rar
- 基于STM32F407(1HZ~600KHZ)频率,占空比
- STM32F407的FSMC工程模板,STM32F407的FSM
- 基于stm32f407的ads1118
- STM32F407二维码条形码识别
- stm32f407实现定时器3Timer3触发ADC双通道
- 基于STM32F407和OV5640的视觉算法二维码
- STM32F407ZGT6实现HAL库SPI扩展FLASH功能M
- 广东省电设一等奖作品源码_智能家居
- STM32F407VE支持4位EMMC读写和FATFS
- STM32F407音频处理代码-Cortex-M4 DSP数字音
- stm32f407igt6-grbl-motioncontrol-port.rar
- STM32F407VET6互补SPWM+死区+PID +ADC+TFT LC
- STM32F407+FreeRTOS+LAN8720+LWIP1.4.1+DHCP+UDP+标
- STM32F407+FreeRTOS+LAN8720+LWIP1.4.1+DHCP+标准
评论
共有 条评论