RAK421,调试程序,连入已有热点问题



  • 我在调试RAK421,之前运行建立ap的例程已经ok了,现在在修改程序作为STA使用。
    运行retval= rak_connect(&rak_strapi.uConnFrame);
    返回值为0,这样是不是说明连接热点应该已经成功了?但是热点那边还是显示没有设备连入,可能是什么原因呢?
    下图是打印出的返回值,能否对如何检查更正此问题给一些建议?

    0_1492051735372_QQ截图20170413104452.png



  • int init_wifi_module(void)
    {
    int i=0;
    int retval=0;

    rak_init_struct(&rak_strapi);		///ÔÚÕâ¸öº¯ÊýÀﶨÒåÒªÁ¬½ÓµÄssid£¬¶Ë¿ÚµÈ
    
    while(!(HAL_GPIO_ReadPin(SPIx_INT_GPIO_PORT,SPIx_INT_PIN)));
    
    rak_sys_init(&uCmdRspFrame);
    
    for(i = 0; i < 18; i++)
    {
        printf("%c",uCmdRspFrame.initResponse.strdata[i]);	
    } 
    

    retval= rak_get_version();
    if(retval!=RUN_OK)
    {
    return retval;
    }
    else
    {
    RAK_RESPONSE_TIMEOUT(RAK_GETVERSION_TIMEOUT);
    rak_read_packet(&uCmdRspFrame);
    printf("version=%s\r\n",uCmdRspFrame.versionFrame.host_fw);
    rak_clearPktIrq();
    }

    retval=rak_set_psk(&rak_strapi.uPskFrame);
    if(retval!=RUN_OK)
    {		
    	return retval;
    }
    else
    {
                     
        RAK_RESPONSE_TIMEOUT(RAK_SETPSK_TIMEOUT);
        rak_read_packet(&uCmdRspFrame);
    

    // printf("PSK=%s,0X%X\r\n",rak_strapi.uPskFrame.psk,uCmdRspFrame.rspCode[0]) ;
    rak_clearPktIrq();
    }

    retval= rak_connect(&rak_strapi.uConnFrame);
    	printf("connect retval=%d\r\n",retval);
    	
    if(retval!=RUN_OK)
    {	
    	return retval;
    		printf("connect failed,%d\r\n",retval);
    		
    }
    else
    {
        
        RAK_RESPONSE_TIMEOUT(RAK_CONNECT_TIMEOUT);
        rak_read_packet(&uCmdRspFrame);
    	  rak_clearPktIrq();
    		printf("connect is ok\r\n");
    }  
    

    /ÕâÀïÊÇ´´½¨apʱ²ÅÓÃ/
    // retval = rak_set_ipstatic(&rak_strapi.uIpstaticFrame);
    // if (retval!=RUN_OK)
    // {
    // return retval;
    // }
    // else
    // {
    // RAK_RESPONSE_TIMEOUT(RAK_CONNECT_TIMEOUT);
    // rak_read_packet(&uCmdRspFrame);
    // if (uCmdRspFrame.mgmtResponse.status==0)
    // {
    // printf ("\r\nSet static ip ok!\r\n");
    // }
    // rak_clearPktIrq();
    // }

    retval = rak_ipconfig_dhcp(RAK_DHCP_CLIENT_ENABLE) ;//ÕâÀï°ÑRAK_DHCP_SERVER_ENABLE¸Ä³ÉRAK_DHCP_CLIENT_ENABLE
    if (retval!=RUN_OK)
    {
        return retval;
    }
    else 
    {
        RAK_RESPONSE_TIMEOUT(RAK_CONNECT_TIMEOUT);
        rak_read_packet(&uCmdRspFrame);
    	if (uCmdRspFrame.ipparamFrameRcv.status==0)
    	{	
    		printf ("IP=");
    		for (i=3;i<=0;i--)
    		{
    		printf ("%d",uCmdRspFrame.ipparamFrameRcv.ipaddr[i]);
    		if (i<3)
    		   {  printf (".");  }
    		}
    		  printf ("\r\n")	;
        printf ("DHCP OK!\r\n");
    	}
    	  rak_clearPktIrq();
    }
    

    }



  • 设置的部分,基本是按照原有建立ap的例程修改的。
    是否rak_connect函数返回值正确,说明ssid,密码啥的设置没问题啊?



  • 请根据流程修改一下宏定义。(更新了设置密码和SSID的位置)
    0_1492136214837_upload-33cdb2ab-caa5-4bc7-ab6e-11abdc9ee7f8

    然后参考附件文件编写初始化模块:STA.c


登录后回复
 

与 RAK支持中心 的连接断开,我们正在尝试重连,请耐心等待