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

CC3200 LPDS睡眠之后,GPIO 和TIMER都可以唤醒,但是不能通过网络方式唤醒。

各位工程师们好,CC3200 LPDS睡眠之后,GPIO 和TIMER都可以唤醒,但是不能通过网络唤醒,当睡下去之后,我以UDP的方式发送n条消息(期待唤醒后通过UDP回复我消息),实际并没有唤醒,继续通过触发GPIO的方式唤醒后,此时,模块唤醒后一次性将之前应该反馈的消息一次性回复了给UDP这边,请问工程师们,这种原因是什么造成呢,需要注意点什么呢,之前的一些贴子也有类似问题我也看了,但并没有真正给出解决方案,求各位帮助一下!!

Viki Shi:

CC3200跟client是否处于同一网络?如果不是,CC3200收不到udp消息的,也就无法唤醒

user6138550:

回复 Viki Shi:

你好,是在同一个网络的,正常进行网络通信都是OK的,但就是不会触发网络唤醒,在睡眠期间,我所通过网络发送的数据感觉被缓存到某个地方,当通过其他方式唤醒后,这些数据会被缓存释放出来,我有一个疑问,进行网络唤醒需不需要向其他唤醒方式一样,先设置唤醒源的参数? 如果网络唤醒的话,应该去触发哪个事件呢?

Viki Shi:

回复 user6138550:

你可以看一下SDK中的idle_profile例程,实现了UDP的唤醒

user6138550:

回复 Viki Shi:

看了的,我的也是照着那个做了的,实在没有办法才来咨询你们的,我的疑问:
1:进行网络唤醒需不需要向其他唤醒方式一样,先设置唤醒源的参数
2: 如果网络唤醒的话,应该去触发哪些事件
这个能不能解答一下呢,非常感谢!

user6138550:

回复 Viki Shi:

hi,VIKI, 我这边调试发现,只要将sl_RecvFrom这个函数的接收模式改为阻塞的方式就可以使用网络唤醒的功能,但使用非阻塞就不行,请问这个是什么原因呢?

Viki Shi:

回复 user6138550:

请参考一下这边的类似问题:e2e.ti.com/…/473599

user6138550:

回复 Yonghua Pan:

哦,原来如此,谢谢解答!!

Xuxia:

回复 user6138550:

你好,怎么设置阻塞模式呢?是通过这个吗:/* setting time out for socket recv */timeVal.tv_sec =5;// SecondstimeVal.tv_usec = 0;// Microseconds. 10000 microseconds resolutionsl_SetSockOpt(iSockID,SL_SOL_SOCKET,SL_SO_RCVTIMEO, (_u8 *)&timeVal, sizeof(timeVal));
如果是TCP通信,也通过这个函数设置吗?

Yonghua Pan:

回复 Xuxia:

在socket.h里面搜索SL_SO_NONBLOCKING看看,就是这个参数去设置的。

赞(0)
未经允许不得转载:TI中文支持网 » CC3200 LPDS睡眠之后,GPIO 和TIMER都可以唤醒,但是不能通过网络方式唤醒。
分享到: 更多 (0)