我用MSP430FR5739+cc3000,在ti官网上下载了cc3000 FRAM Sensor Application程序包修改程序,用的是DHCP,可以正常连上路由器,我创建了用于udp的socket,用sendto()广播数据正常,用select()监听socket和recvfrom()接收数据也正常;就是同时广播和接收的时候,程序卡死了,这是收发冲突了么?这是怎么回事?能帮我解答一下么?
shuming ye:
几天都没人回复,不过已经解决的问题,只要把固件版本升级到最新就可以,但是255.255.255.255的广播形式还是不可以用,不知道固件还不稳定还是其他原因。固件下载地址:http://processors.wiki.ti.com/index.php/CC3000_Wi-Fi_Downloads。
Yonghua Pan:
回复 shuming ye:
能否把你的代码贴在这里我们看一下?
chen jin:
回复 Yonghua Pan:
我也有同样的问题, UDP广播只能发送1,2次, 就死机;
固件更新是用Patch Programmer下载的吗?
//test group socket; wlSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); wrSocketAddr.sa_family = AF_INET; wsSocketAddr.sa_family = AF_INET; // the source port 7999=0x1F3F; wrSocketAddr.sa_data[0] = 0x1F; //ascii_to_char(usBuffer[2], usBuffer[3]); wrSocketAddr.sa_data[1] = 0x3F; //ascii_to_char(usBuffer[4], usBuffer[5]); wsSocketAddr.sa_data[0] = 0x1F; //ascii_to_char(usBuffer[2], usBuffer[3]); wsSocketAddr.sa_data[1] = 0x3F; //ascii_to_char(usBuffer[4], usBuffer[5]); wsSocketAddr.sa_data[2] = 255; wsSocketAddr.sa_data[3] = 255; wsSocketAddr.sa_data[4] = 255; wsSocketAddr.sa_data[5] = 255; // all 0 IP address memset (&wrSocketAddr.sa_data[2], 0, 4); bind(wlSocket, &wrSocketAddr, sizeof(sockaddr)); //test second socket; while(1){ sendto(wlSocket, (unsigned char*)wlSocketDataString, sizeof(wlSocketDataString), 0, &wsSocketAddr, sizeof(sockaddr)); delay_ms(1000);}
shuming ye:
回复 chen jin:
是的,里面有两个工程工程:Patch Programmer IAR_DR_Patch和Patch Programmer IAR_FW_Patch,先下载第一个,再下载第二个
shuming ye:
回复 chen jin:
不要用255.255.255.255,可以用192.168.1.255,具体什么原因我也不清楚
chen jin:
回复 shuming ye:
Patch Programmer 的最新版是1.11.7.14.24? 还是有更新的?
shuming ye:
回复 chen jin:
我现在就是用这个,两个月没看ti网站了,不知道更新没有
chen jin:
回复 shuming ye:
谢谢,用了172.16.15.255还是不行, 会不会是AP的问题;
shuming ye:
回复 chen jin:
确定是升级了固件吗?可以用代码把固件版本读出来的,就在nvmem.c里,有个函数nvmem_read_sp_version可以读出版本号,如果升级了的版本号是1.24
chen jin:
回复 shuming ye:
谢谢, 版本号读出是1.18,
PatchProgrammer 用的是PatchProgrammerMSP430FR5739_1_11_7_14_24windows_installer.exe