工具与软件:
大家好、在现成的 WIFI-HTTP 代码中、它可以像 AP 一样正常运行、但当我把它置于 STA 模式时、代码无法正常运行。 我离开下面的代码块。
void * httpserverThread (void * pvParameters)
{
mq_attr 属性;
int32_t msgqRetVal;
int32_t retc = 0;
pthread_t spawn_thread =(pthread_t) NULL;
pthread_attr_t pAttrs_spawn;
结构 sched_param priParam;
spi_init();
/* NWP günlüğü*/
MAP_PinTypeUART (PIN_62、PIN_MODE_1);
/*为 UART 输出配置显示模块*/
display_init();
Display = Display_open (Display_Type_、SNLULL);
if (display == NULL){
/*无法打开显示模块*/
while (1);
}
/*使用 CC3x20接口初始化 SlNetSock 层*/
/*我们正在使用优先级5 */
SlNetIF_init (0);
SlNetIF_ADD (SLNETIF_ID_1、"CC32xx"、(const If_Config_*表皮357)&SlNetIfConfigWifi、/* PRIORITY*/ 5);
SlNetSock_init (0);
SlNetUtil_init (0);
/*创建 sl_Task */
pthread_attr_init (&pAttrs_spawn);
priparam.sched_priority = spawn_task_priority;
retc = pthread_attr_setschedparam (&pAttrs_spawn、&priParam);
retc |= pthread_attr_setstacksize (&pAttrs_spawn、TASKSTACKSIZE);
retc |= pthread_attr_setdetachstate (&pAttrs_spawn、pthread_create_detached);
retc = pthread_create (&spawn_thread、&pAttrs_spawn、sl_Task、NULL);
如果(Retc < 0)
{
/*处理错误*/
Display_printf (display、0、0、"[HTTP 服务器任务]无法创建 SimpleLink 任务");
while (1);
}
Retc = sl_Start (0、0、0);
如果(Retc < 0)
{
/*处理错误*/
Display_printf (display、0、0、"[HTTP 服务器任务] sl_Start failed");
while (1);
}
/*将设备信息输出到 UART 终端*/
DisplayBanner (application_name、application_version);
Retc = SL_Stop (SL_STOP_TIMEOUT);
如果(Retc < 0)
{
/*处理错误*/
Display_printf (display、0、0、"[HTTP 服务器任务] sl_Stop failed");
while (1);
}
/*关闭红色 LED */
GPIO_WRITE (CONFIG_GPIO_LED_0、CONFIG_GPIO_LED_OFF);
/*重置机器的状态*/
network_if_ResetMCUStateMachine();
/*启动驱动程序*/
Retc = Network_IF_InitDriver (ROLE_AP);
如果(Retc < 0)
{
Display_printf (display、0、0、"[HTTP 服务器任务]未能启动 SimpleLink 设备"、retc);
}
/*初始化 http 消息的邮箱*/
ATTR.MQ_maxmsg = 1;/*队列大小*/
attr.mq_msgsize = sizeof (SlNetAppRequest_t*);/*消息的大小*/
httpserverMPuet = mq_open ("httpserver msg q"、O_creat、0、&attr);
if (httpserverQueue == NULL)
{
display_printf (display、0、0、"[HTTP 服务器任务]无法创建 msg 队列");
while (1);
}
Retc = ConfigureHttpServer();
如果(Retc < 0)
{
/*处理错误*/
Display_printf (display、0、0、"[HTTP 服务器任务]配置 HTTP 服务器失败");
while (1);
}
initHttpserverDB();
while (1)
{
SlNetAppRequest_t * netAppRequest;
msgqRetVal = mq_receive (https://server排队、(char *)&netAppRequest、sizeof (SlNetAppRequest_t*)、NULL);
if (msgqRetVal < 0)
{
Display_printf (display、0、0、"[HTTP 服务器任务]无法从 msg 队列接收元素");
while (1);
}
display_printf (display、0、0、"[HTTP 服务器任务] netapp request received - handle from main context appId =%d、Type =%d、handle =%d"、netAppRequest -> AppId、netAppRequest -> Type、 netAppRequest ->句柄);
display_printf (display、0、0、"[HTTP 服务器任务] Metadata len =%d"、netAppRequest -> requestData。 MetadataLen);
if (((netAppRequest->Type == sl_NETAPP_Request_HTTP_GET)||(netAppRequest->Type == sl_NETAPP_Request_HTTP_delete ))
{
if (netAppRequest ->类型== SL_NETAPP_Request_HTTP_GET)
{
Display_printf (display、0、0、"[HTTP 服务器任务] HTTP GET 请求");
}
设计
{
Display_printf (display、0、0、"[HTTP 服务器任务] HTTP 删除请求");
}
httpGetHandler (netAppRequest);
}
否则为((netAppRequest ->类型== sl_NetApp_Request_HTTP_post)||(netAppRequest ->类型== sl_NetApp_Request_HTTP_Put))
{
if (netAppRequest->Type == SL_NETAPP_Request_HTTP_post)
{
display_printf (display、0、0、"[HTTP 服务器任务] HTTP POST 请求");
}
设计
{
Display_printf (display、0、0、"[HTTP 服务器任务] HTTP PUT request");
}
display_printf (display、0、0、"[HTTP 服务器任务]接收到数据、len =%d、flags=%x"、netAppRequest -> requestData。 PayloadLen、netAppRequest -> requestData。 旗帜);
httpPostHandler (netAppRequest);
}
if (netAppRequest -> requestData)。 MetadataLen > 0)
{
免费(netAppRequest -> requestData.pMetadata);
}
if (netAppRequest -> requestData)。 PayloadLen > 0)
{
免费(netAppRequest -> requestData.pPayload);
}
免费(netAppRequest);
}
}
此处 retc = Network_if_InitDriver (ROLE_AP);
我对这项声明的修改如下。 Retc = Network_IF_InitDriver (ROLE_STA);。 当我以这种方式更改它时、没有连接。 我需要更改的其他位置。
/* AP SSID */
#define SSID_NAME"SSID_NAME"
/*安全类型(开放或 WEP 或 WPA_WPA2)*/
#define SECURITY_TYPE SL_WLAN_SEC_TYPE_OPEN
/*安全 AP 的密码*/
#define SECURITY_KEY ""
#define SSID_AP_MODE " "
#define SEC_TYPE_AP_MODE SL_WLAN_SEC_TYPE_OPEN
#define PASSWORD_AP_MODE ""
我在此处输入了要连接的 AP 的 SSID 和密码、但仍然无法成功连接。
