ch582问题询问

        

下面这段代码里, tmos_start_task(App_TaskID, APP_NODE_TEST_EVT, 800); //发送时长1600=1s

这个代码为什么至少要800还是多少,否则下一节点无法收到信息呢?想要达到毫秒级。

PRINT("sleep mode sleep \n");
        tmos_stop_task(halTaskID, HAL_REG_INIT_EVENT);  //默认2分钟一次的校准先暂停
        DelayMs(5);
//        RTC_TMRFunCfg(Period_16_S);/* 定时1s的RTC闹钟 */
        RTC_TRIGFunCfg(32768 * 10);
        PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_RTC_WAKE, Long_Delay);/* 使能RTC中断唤醒源 */
        PFIC_EnableIRQ(RTC_IRQn);/* 使能RTC中断 */
        /* 注意当主频为80M时,Sleep睡眠唤醒中断不可调用flash内代码 */
        LowPower_Sleep(RB_PWR_RAM30K | RB_PWR_RAM2K); /* 只保留30+2K SRAM 供电 */
        HSECFG_Current(HSE_RCur_100); /* 降为额定电流(低功耗函数中提升了HSE偏置电流) */
        PFIC_DisableIRQ(RTC_IRQn);
        DelayMs(5);
        PRINT("wake.. \n");
        DelayMs(20);
        tmos_set_event(halTaskID, HAL_REG_INIT_EVENT);
        PRINT("lkj\n");//先校准RF,再开广播
//**********
        tmos_start_task(App_TaskID, APP_NODE_TEST_EVT, 800);      //发送时长1600=1s



主频跑的多少,是默认的60MHz吗。

校准RF之后就可以发包了,加打印跟踪一下HAL_REG_INIT_EVENT事件中阻塞了多久、APP_NODE_TEST_EVT之前执行了哪些事件。

目标毫秒级的延时,具体是多少毫秒?sleep唤醒至少要2ms的等待晶振起振的时间;mesh协议近距离直接发包的话也要按10ms计算,增加一次转发,要增加110ms的延时。


只有登录才能回复,可以选择微信账号登录