微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > CC3000能够通过UDP接收数据,但是不能发送数据给PC机?

CC3000能够通过UDP接收数据,但是不能发送数据给PC机?

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

你好,

        在调试CC3000的Basic WiFi Application 时候,能够通过UDP协议接受数据,并且能够ping通,但是在通过CC3000发送数据给PC机的时候,PC机接收不到数据,数据也没有发到路由器上(但是在ping的时候,路由器可以通过浏览器访问192.168.1.1可以看到无线路由器上CC3000接受和发送的字节数。但是通过CC3000发送时,无线路由器没有接收到CC3000的数据)。这是什么原因,谢谢!

你用的是哪个版本的patch programmer和basic wifi application, 还有MCU是什么?

你好,

PatchProgrammer用的是PatchProgrammerMSP430FR5739_1_11_7_14_24windows_installer.exe,basic wifi application用的是1.13.7.13版本的,MCU是msp430fr5739。谢谢

我也出现了同样的问题,这里没有人说明是什么问题,不知您解决了没?

PatchProgrammerMSP430FR5739_1_11_7_14_24windows_installer;

FRAM-PatchMSP430FR5739-1_11_7_13_19-windows-installer。

如有其他人知道的,麻烦告之,万分感谢!

能否罗列一下详细步骤,我们也可以测试一下。

你好,通过调试发现问题主要产生在从超级终端输入命令的转换上(代码如下),在转换上并不能正常转换。但是转换的算法我通过其他软件(如:VC++)调试的结果很正确。后来我通过发送固定的字符和长度还有固定的IP(直接查看PC机的IP地址),发现能够正常发送数据。所以我才推断可能是前面对终端命令的转换有问题,才导致不能正常发送。谢谢!

case UART_COMMAND_SEND_DATA:
		
		// data pointer
		pcData = (char *)&usBuffer[4];
		
		// data length to send
		ulDataLength = atoshort(usBuffer[2], usBuffer[3]);
		
#ifdef CC3000_TINY_DRIVER
		if(ulDataLength > CC3000_APP_BUFFER_SIZE)
		{ulDataLength = CC3000_APP_BUFFER_SIZE;
		}
#endif        
		
		pcSockAddrAscii = (pcData + ulDataLength);
		
		// the family is always AF_INET
		tSocketAddr.sa_family = atoshort(pcSockAddrAscii[0], pcSockAddrAscii[1]);
		
		// the destination port
		tSocketAddr.sa_data[0] = ascii_to_char(pcSockAddrAscii[2], pcSockAddrAscii[3]);
		tSocketAddr.sa_data[1] = ascii_to_char(pcSockAddrAscii[4], pcSockAddrAscii[5]);
		
		// the destination IP address
		tSocketAddr.sa_data[2] = ascii_to_char(pcSockAddrAscii[6], pcSockAddrAscii[7]);
		tSocketAddr.sa_data[3] = ascii_to_char(pcSockAddrAscii[8], pcSockAddrAscii[9]);
		tSocketAddr.sa_data[4] = ascii_to_char(pcSockAddrAscii[10], pcSockAddrAscii[11]);
		tSocketAddr.sa_data[5] = ascii_to_char(pcSockAddrAscii[12], pcSockAddrAscii[13]);

你是怎么调试的,有用IAR或者CCS之类的工具,能否查看一下在出现这种情形的时候

tSocketAddr

结构体里面的值是多少?可以看看是否是转换错了。

你好,我是经过IAR的断点调试,没有使用其他软件工具。下面是我调试给您截的图,供您参考。错误主要产生在通过转换命令赋值给变量ulDataLength时,产生错误结果。其他变量的值都是正确的。(这是我发送时通过超级终端敲入的命令:040512345021f90c0a80165)谢谢!

我在我这里试了很多次都没有这个问题,每次都能够解析对。

你用的是什么超级终端,能否换一个其它的工具试试。

我用的是TeraTerm version 4.80.

设置如下:

Baud Rate: 115200

Data 8-bit

Parity: none

Stop: 1 bit

Flow control: none

你好,

     我换了您给我的超级终端工具,经过多次测试,问题并不是超级终端导致的。在我使用断点调试到(ulDataLength = atoshort(usBuffer[2], usBuffer[3]);)ulDataLength的值依然是个不正常的值。跟以前的结果是一样的。谢谢!

如果你不是在调试模式下,如果是在没有IAR,自由运行的模式下也是这样吗?

你好,

       谢谢您的帮助,刚刚按照您说的不在调试模式下运行,PC机能收到数据。但是为什么在调试模式下PC机就不能收到数据,是因为IAR软件的问题吗?谢谢!

应该是的,我觉得你可以联系一下IAR的人问问看之前他们有没有遇到过类似的情形。

您好,我现在在用MSP430F5739+cc3000套件,patch programmer用的1.13, SDK用的1.12版本。

我smartconfig成功了,也返回了cc3000的ip地址,但是pc机ping不通这个ip地址。请问可能是什么原因呢?

谢谢

您好,我在调试过程中也遇到了同样的问题,不能send UDP data,而且CCS中也无法查看pcData的值(报错),请问你当时怎么解决的呢?谢谢!

您好,请问你当时的问题是怎么解决的呢?我也遇到同样问题,谢谢!

你的电脑能不能和路由器用网线连着,然后把电脑的防火墙关掉再测试看看。

你不能发送的话,要不要检查一下电脑上的防火墙。有时候电脑的防火墙会挡掉很多数据。

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

网站地图

Top