微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > cc3000执行wlan_connect后一直没有HCI_EVNT_WLAN_UNSOL_CONNECT

cc3000执行wlan_connect后一直没有HCI_EVNT_WLAN_UNSOL_CONNECT

时间:10-02 整理:3721RD 点击:

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

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

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 ip
pucSubnetMask[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 Setting
wlan_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的中断进来。。

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

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

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

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

各位!要接天线啊!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top