资源简介
这是使用正点原子探索者开发板实现的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上的两个can发送和接收例程
- FreeModbus_Slave+STM32F407+USART2代码亲测可
- STM32F407 串口配置 串口1~6 六串口同时
- STM32F407_6个串口同时使用的代码
- STM32F407实时时钟_DS1302实时时钟模块和
- stm32f407读写flash的demo,基于正点原子
- 基于STM32F407的视频采集与传输系统设
- STM32F407ZG_ESP8266例程
- Keil5下的STM32F407程序
- USART基于hal库stm32f407串口通讯.rar
- 完整的STM32F407_MODBUS通信工程代码。
- STM32指针式时钟工程项目
- stm32f407和摇杆制作的控制手柄代码
- STM32F407. 基于PID速度环的步进电机速度
- STM32F407 基于232或485的57&42;步进电机旋
- STM32F407与OV2640的二维码识别实验
- stm32f407+ov5640颜色识别与追踪
- NRF24L01收发程序STM32F407
- LD3320语音模块资料51单片机代码,ST
- uCOS-III+STemWin+Fatfs+usb在STM32F407上成功移
- STM32F407串口1-6 CAN1&2测试例程
- 基于STM32F407的MLX90614驱动程序(寄存器
- stm32f405/stm32f407单片机nrf24l01无线通信
- 基于STM32F407的漏电检测系统
- STM32F407ZG接入ONENET平台代码
- STM32F103RCT语音模块LD3320 STM32与51单片
- STM32F407 SD卡IAP升级
- 基于stm32f407芯片双ADC多通道开启AD转换
- STM32F407ZET/ZGT STEMWIN ILI9341 SPI LCD液晶屏
- stm32f407对ds18b20温度传感器数据的采集
评论
共有 条评论