cc3000接受数据的问题 (UDP)
TI工程师,你们好
我在调试CC3000模块的时候,接收数据一直有问题。我用的是MSP430f5438a + CC3000 TIWI-SL模块,版本号是 1.6.1.2
连接WLAN和发送数据都没有问题,首先建立连接,通过DHCP获得IP地址,然后按照说明发送数据,在网络调试助手端收到了完整的数据。
之后我没有关闭socket,还用了同一个,尝试从PC发送数据到CC3000。我首先发送了一个1111, 然后按了05,程序进入了revfrom()之后就再也出不来了。我用LED
来测试,发现程序确实收到了事件HCI_EVENT_RECVFROM, 之后 有一个判断语句
if(((tBsdReadReturnParams *)pRetParams)->iNumberOfBytes == ERROR_SOCKET_INACTIVE) , 为真,进入了函数
set_socket_active_status(((tBsdReadReturnParams *)pRetParams)->iSocketDescriptor,
SOCKET_STATUS_INACTIVE);
之后数据接收的那一段代码根本没有执行,程序就死在这个while(1)里面了。能不能告诉我这是怎么一回事呢
我是进入到event_handler文件中检查hci_event_handler()函数时发现了这个问题。
之后我又尝试把socket绑定到一个特定的端口,不进行发送,直接接收数据,可是结果还是一样的,程序死在hci_event_handler里了。
我需不需要反复调用 revfrom函数呢,因为我从pc端发送数据过来,这个函数还没有执行,因为需要等我按下05之后才执行,需要我把它写在while (1)里面吗?
如果我底层驱动,也就是SPI有问题的话,发送数据不会成功的,所以我也不知道是哪里的问题了。
多谢回复!
你用setsockopt这个API设置一下SOCKOPT_RECV_TIMEOUT再试试看呢?如果接收没有数据超时就会返回。