TI中文支持网
TI专业的中文技术问题搜集分享网站

cc3000执行wlan_connect后一直没有HCI_EVNT_WLAN_UNSOL_CONNECT

cc3000初始化还有smartconfig,都是正确的,但是执行wlan_connect后一直没有返回HCI_EVNT_WLAN_UNSOL_CONNECT,是什么原因呢?

sckaty lin:

我把我的代码贴出来一下:

cc3000_setup_vbat_en();             //硬件初始化cc3000_setup_irq();cc3000_setup_spi();

wlan_init(cc3000_async_callback,cc3000_send_FW_patch,cc3000_send_driver_patch,cc3000_send_bootloader_patch,cc3000_read_wlan_irq,cc3000_wlan_irq_enable,cc3000_wlan_irq_disable,cc3000_write_wlan_pin);

wlan_start(0);

//配置cc3000 ippucSubnetMask[0] = 0xFF; pucSubnetMask[1] = 0xFF; pucSubnetMask[2] = 0xFF; pucSubnetMask[3] = 0x0; // CC3000's IP pucIP_Addr[0] = STATIC_IP_OCT1; pucIP_Addr[1] = STATIC_IP_OCT2; pucIP_Addr[2] = STATIC_IP_OCT3; pucIP_Addr[3] = STATIC_IP_OCT4; pucIP_DefaultGWAddr[0] = STATIC_IP_OCT1; pucIP_DefaultGWAddr[1] = STATIC_IP_OCT2; pucIP_DefaultGWAddr[2] = STATIC_IP_OCT3; pucIP_DefaultGWAddr[3] = 1; pucDNS[0] = STATIC_IP_OCT1; pucDNS[1] = STATIC_IP_OCT2; pucDNS[2] = STATIC_IP_OCT3; pucDNS[3] = 1; netapp_dhcp((unsigned long *)pucIP_Addr, (unsigned long *)pucSubnetMask, (unsigned long *)pucIP_DefaultGWAddr, (unsigned long *)pucDNS); // reset the CC3000 to apply Static Settingwlan_stop(); delay_ms(600); wlan_start(0); // Mask out all non-required events from CC3000 wlan_set_event_mask(HCI_EVNT_WLAN_KEEPALIVE|HCI_EVNT_WLAN_UNSOL_INIT|HCI_EVNT_WLAN_ASYNC_PING_REPORT); // CC3000 has been initialized setCC3000MachineState(CC3000_INIT); unsigned long aucDHCP, aucARP, aucKeepalive, aucInactivity; aucDHCP = 14400; aucARP = 3600; aucKeepalive = 10; aucInactivity = 25; if(netapp_timeout_values(&(aucDHCP), &(aucARP), &(aucKeepalive), &(aucInactivity)) != 0) { while(1); } // Check if we should erase previous stored connection details (most likely written with data from the SmartConfig app)wlan_ioctl_set_connection_policy(0, 0, 0);wlan_disconnect(); unsetCC3000MachineState(CC3000_ASSOC);StartSmartConfig();                                     //SmartConfig

delay_ms(100);

{  unsigned char loop_index = 0;

  while (loop_index < 3)  {    mdnsAdvertiser(1,(char *)cc3000_device_name,strlen(cc3000_device_name));    loop_index++;  } }if(!(currentCC3000State() & CC3000_ASSOC)){

  if(isAssocSSIDValid() == 1)  {     ConnectUsingSSID((char *)ptrSSID, (char *)ptrKEY);         //ptrSSID是读出的ssid,ptrKEY是密码  }  else  {    ConnectUsingSSID(DEFAULT_OUT_OF_BOX_SSID, NULL);  }

}

ConnectUsingSSID的代码如下:

int ConnectUsingSSID(char * ssidName, char *key){unsetCC3000MachineState(CC3000_ASSOC); // Disable Profiles and Fast Connect wlan_ioctl_set_connection_policy(0, 0, 0);delay_ms(500);if (wlan_connect(WLAN_SEC_WPA, (char *) ssidName, strlen(ssidName), NULL, (unsigned char *) key, strlen(key)) != 0) { dbg_str("SSID connection failed");       //不会进入这里面 return 1; }// We don't wait for connection. This is handled somewhere else (in the main loop for example).return 0; }

但是接下来就是一直没有HCI_EVNT_WLAN_UNSOL_CONNECT的中断进来。。

请大侠们 帮我看看可能是什么问题,谢谢了!

sckaty lin:

 再补充一点:cc3000的Service Pack和Firework的版本是P1.13.7 的

还有用netapp_ipconfig(&ipconfig);读ip也读不出来。。

哪位遇到过类似问题的大侠请不吝赐教!谢谢!

sckaty lin:

各位!要接天线啊!

赞(0)
未经允许不得转载:TI中文支持网 » cc3000执行wlan_connect后一直没有HCI_EVNT_WLAN_UNSOL_CONNECT
分享到: 更多 (0)