CC3200 裸机 udp-socket 使用主循环+延时可以发送数据,但是使用在中断处理发送失败
while(1)
{
upSensor(getValueStr(SENSOR_TYPE,"131223"),1);
MAP_UtilsDelay(2000000);
}
可以发送成功
void TimerRefIntHandler(void)
{
upSensor(getValueStr(SENSOR_TYPE,"131223"),1);;
GPIO_IF_LedToggle(MCU_BLUE_LED_GPIO);
Timer_IF_InterruptClear(g_ulRefBase);
}
直接跑死在sl_socket 请问是什么原因
gaoyang9992006:
你改变一下策略,看看能否在中断里面设置个标志变量,看看这个变量能否正常执行,同事你的这个LED翻转实现了吗?在主程序里通过判断这个标志变量来执行这两句试试
user5117392:
回复 gaoyang9992006:
感谢您的回复,中断时可以正常执行的,去掉发送函数,led可以正常翻转。标志变量可以进行发送。但实际的设计是主函数要使用while(1)进行接收。
Yonghua Pan:
回复 user5117392:
你说的是用中断进行网络发送吗?不要在中断里面做网络数据的收发。
user5117392:
回复 Yonghua Pan:
能给个理由么?主循环进行接收,接收时未收到数据是无法返回的,同时我要发送数据,请问怎么做好?
Yonghua Pan:
回复 user5117392:
M4和NWP交互的时候指令是会阻塞的,不能在中断里面操作NWP。 如果要同时收发数据的话,在两个task里面做好了。
user5117392:
回复 Yonghua Pan:
请问裸机中什么叫阻塞。。。task怎么建立?
Yonghua Pan:
回复 user5117392:
你说的裸机阻塞是什么意思,我还不是太明白。你如果要创建task的话,可以参考例程getting_started_with_station例程
user5117392:
回复 Yonghua Pan:
CC3200 裸机 udp-socket 使用主循环+延时可以发送数据,但是使用在中断处理发送失败
CC3200 udp-socket 是裸机程序,裸机程序怎么阻塞?阻塞是操作系统的东西,没有操作系统怎么阻塞。还有没有操作系统怎么建立Task?
Yonghua Pan:
回复 user5117392:
你裸机程序阻塞不就是整个系统都阻塞在那里了吗,没操作系统不能创建TASK.
TI中文支持网


