测试WIFI笔记
背景
工训任务,搬运小车,接收上位机WIFI发过来的任务,然后小车按照任务,确定搬运物料的顺序。所以需要设置WIFI的相关模式。
知识点:
(1)网络的相关概念,网关,IP地址,TCP,UDP,端口号等;WIFI的相关概念。
建议看B站青柚电子的物联网的相关章节的视频内容,有配套代码和配套pdf文本。
或者海创电子的WIFI相关视频。
(2)超时发送判断;
(3)判断比较
(4)串口的空闲中断知识。
硬件:
STM32F407,用串口3(PD8和PD9,PD8是串口3的TXD引脚,PD9是串口3的RXD引脚);
DAP下载器。
ESP32WROOM DEVKIT核心板。
步骤:
1、 往ESP32烧录乐鑫官方的WIFI固件。
2、 测试WIFI固件是否烧录成功,初步验证相关AT指令;
3、 测试STM32F407的D8和D9是否配置成功,能不能串口发数据到串口助手,能不能接受串口助手发过来的数据。
4、 两者一起调试。调试TCP链接;调试UDP链接。
步骤1 往ESP32烧录乐鑫官方的WIFI固件。
再乐鑫官方网站下载ESP32的WIFI固件和固件下载软件;
按照步骤,烧录固件;
测试是否烧录成功
接线
ESP32的RXD2和TXD2,连接USB-TTL模块的TXD和RXD,以及GND相互连接,假如串口好COM1
ESP32的下载USB口,通过数据线,连接到电脑的USB口,假如串口是COM2
打开两个串口助手。
在COM2串口助手查看消息日志,按下ESP32模块的EN按键,,波特率115200.
看到烧录的WIFI固件消息。
在COM1串口助手查看消息日志,输入AT回车换行,发送,会看到返回OK。
说明测试基本成功。其他指令可以同样的测试。
步骤三
测试STM32的串口3是不是开启成功,能不能发送,能不能接收。
接线:
Stm32的串口3,PD8接到串口模块的RXD,PD9接到TXD。
打开串口助手。
用sendByte(USART3,‘B’)等测试是不是开启成功。
//查询发送,不用TC中断发送
void sendByte(USART_TypeDef *USARTx,u8 byte)
{
USART_SendData(USARTx,byte);
while(USART_GetFlagStatus(USARTx,USART_FLAG_TC) == RESET);//发送完成标志位
USART_ClearFlag(USARTx,USART_FLAG_TC);
}
再串口3的串口空闲中断部分,假如打印printf函数,将接收的数据,通过串口1发送出去。
//初始化WIFI
if(initWIFI()!=0)
{
printf(“init OK\r\n”);
}
else
printf(“init err\r\n”);
//连接热点
if(connectAP(SSID,PWD)!=0)
{
printf(“conn ap ok\r\n”);
//那么这一行必须要,不能省略
sendWIFI(“AT+CIPMUX=0\r\n”);
}else
{
printf(“conn ap error\r\n”);
}
// //UDP 链接测试
// if(connectServer(UDP,IP,PORT)!=0)
// {
// printf(“conn server ok\r\n”);
//
// sendWIFI(“AT+CIPMODE=1\r\n”); //设置为透传模式
// delay_ms(20);
// sendWIFI(“AT+CIPSEND\r\n”);//开始处于透传发送状态
// delay_ms(20);
// break;//假如连接了WIFI和UDP IP模式,那么跳出while1循环;
// }else
// {
// printf(“conn server error\r\n”);
// }
//TCP 链接测试
if(connectServer(TCP,IP,PORT)!=0)
{
printf("conn server ok\r\n");
sendWIFI("AT+CIPMODE=1\r\n"); //设置为透传模式
delay_ms(10);
sendWIFI("AT+CIPSEND\r\n");//开始处于透传发送状态
delay_ms(10);
break;//假如连接了WIFI和TCPIP模式,那么跳出while1循环;
}else
{
printf("conn server error\r\n");
}
}
printf(“hello world88888\r\n”);
//间隔300ms,发送123和hello.
while(1)
{
memset(WIFI_TXBuffer,0,WIFI_TXBUFFER_LEN);
sprintf(WIFI_TXBuffer,“123”);
sendWIFI(WIFI_TXBuffer);
delay_ms(300);
memset(WIFI_TXBuffer,0,WIFI_TXBUFFER_LEN);
sprintf(WIFI_TXBuffer,“hello”);
sendWIFI(WIFI_TXBuffer);
delay_ms(300);
}
}
ESP32的IP地址。看到是192.168.137.72,我使用电脑产生热点。
Ping ESP32的IP地址,看到有回复。说明热点和ESP32同一个局域网。
用网络调试助手,调试是否成功。