改进程序
经过七天的小项目学习后,我对单片机的开发,wifi模块,以及基本的网络基础有了初步的认知,对串口通信及esp8266的tcp指令和udp指令有了一个清晰的认识。为后续继续学习打下了坚实的基础。
一 改进代码,进行UDP传输
利用串口进行输入wifi的账号和密码
// 向ESP8266发送UDP数据
uint8_t ESP8266_Send_UDP(char *data)
{
// 1.准备发送的指令
char buf[256] = {0};
uint8_t len = strlen(data);
sprintf(buf, "AT+CIPSEND=%d\r\n", len);
// 2.发送指令
if (ESP8266_SendCommand(buf, "OK", 500) == 0)
{
// 3.发送数据
ESP8266_SendCommand(data, "OK", 1000);
return 0;
}
return 1;
}
//更新wifi链接信息
void Key_update_WIFI(char *cmd,uint16_t time)
{
char ch=0;
char len=0;
char ssid_buf[20]="12345";
char PWD_buf[20]="1241138418..";
char WIFI_buf[100]="AT+CWJAP_DEF=\"";
//1.设置等待时间
HAL_Delay(time);
//2.检测是否按下,是否需要更新wifi账号密码
if (Key_GetFlag() == 1)
{
//获取WiFi的账号
memset(ssid_buf,0,20);
printf("please enter SSID:");
while(ch!='\r')
{
ch=getchar ();
if(ch > ' ')
{
printf("%c",ch);
ssid_buf[len]=ch;
len++;
}
}
//获取wifi的密码
ch=0;
len=0;
memset(PWD_buf,0,20);
printf("please enter password:");
while(ch!='\r')
{
ch=getchar ();
if(ch > ' ')
{
printf("%c",ch);
PWD_buf[len]=ch;
len++;
}
}
}
//3.组合指令
strcat(WIFI_buf,ssid_buf);
strcat(WIFI_buf,"\",\"");
strcat(WIFI_buf,PWD_buf);
strcat(WIFI_buf,"\"");
memcpy(cmd,WIFI_buf,strlen(WIFI_buf));
}