这个是终端设备的部分程序,我通过协调器发送命令给终端设备,或者终端设备通过按键 控制这个事件的开关。
if( events & MYAPP_ENDSENDSENSORDATA_EVT) //终端发送传感器数据事件
{
MyApp_AFEndSendSensorData(); //终端发送数据发送数据到协调器
osal_start_timerEx(MyApp_TaskID,MYAPP_ENDSENDSENSORDATA_EVT,TrainsSate); //每隔两秒产生一次发送事件
HalLedSet(HAL_LED_2, HAL_LED_MODE_TOGGLE); //led2状态反转
return (events ^ MYAPP_ENDSENDSENSORDATA_EVT);
}
问题:当TrainsSate 为1s时,程序正常;当我想测量功率时,希望把这个周期减小,方便测量。改为10ms时,终端一直产生这个事件,不受控制了,协调器发送停止命令和按键停止命令都不管用了。这是为什么?
1、是发送周期太短了?
2、如果1是正确的,那协议栈最快能多久传输一次?
YiKai Chen:
1. 應該是发送周期太短
2. 建議不要低於50 ms 而且跟你终端发送数据的大小應該也有點關係
user4711142:
回复 YiKai Chen:
想问一下,不要低于50ms,还有周期和数据量的关系大概是什么?
YiKai Chen:
回复 user4711142:
不要低于50ms->私人經驗分享
Viki Shi:
建议增大发送间隔,可以慢慢调整,选择最佳值
user4450551:
最快能到5ms一帧,再小不能了,发送一帧数据,m0所有打开的时间就是5ms