一、wifi移植
直接将例程202中的wifi_connect.c复制放到301例程中,并修改BUILD.gn以及.application_config文件
在user_app函数中添加202例程中的wifi_example.c部分代码
int sock = -1;
struct sockaddr_in client_addr;
char recv_data[512] = {0};
int recv_data_len;
WifiConnect(WIFI_NAME, WIFI_PWD);
printf("start wifi_test test\r\n");
adc_init();
NfcExtExample();
while (1)
{
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock < 0) {
printf("Socket error\n");
osDelay(OD_DELAY_100);
continue;
}
memset_s(&(client_addr), sizeof(client_addr), 0, sizeof(client_addr));
client_addr.sin_family = AF_INET;
client_addr.sin_port = htons(SERVER_PORT);
client_addr.sin_addr.s_addr = inet_addr(SERVER_IP);
printf("try connect to server "SERVER_IP" :%d \n", SERVER_PORT);
if (connect(sock, (struct sockaddr *)&client_addr, sizeof(struct sockaddr)) == -1) {
closesocket(sock);
osDelay(OD_DELAY_1000);
continue;
}
printf("Connect to tcp server successful!\n");
while (1) {
recv_data_len = recv(sock, recv_data, RECV_LEN, 0);
if (recv_data_len <= 0) {
break;
} else {
recv_data[recv_data_len] = '\0';
}
printf("recv: %s\n", recv_data);
write(sock, recv_data, recv_data_len);
}
}
二、注意事项
该例程只能连接开放网络,即wifi不能加密,使用OPEN方式连接,需要修改wifi_connect.c中的SELECT_WIFI_SECURITYTYPE 为如下值
define SELECT_WIFI_SECURITYTYPE WIFI_SEC_TYPE_OPEN
另外需要注意WIFI_PWD需要设置为空,否则连接不上wifi,报如下错误。这个地方耽误了我不少时间才发现这个问题。
