RT,用了RF_PHY例程,將發(fā)送定時器弄成100(原來定時是1000也就是1秒),運(yùn)行后沒有定時發(fā)送,只發(fā)送了一次,打印了STA:1,就死了,CH573沒問題
熱門產(chǎn)品 :
CH32L103: 32位PDUSB低功耗單片機(jī)
RT,用了RF_PHY例程,將發(fā)送定時器弄成100(原來定時是1000也就是1秒),運(yùn)行后沒有定時發(fā)送,只發(fā)送了一次,打印了STA:1,就死了,CH573沒問題
tmos 的時間單位是0.625ms:
160 才是100ms,1600才是1s
其次,我猜測,你可能調(diào)用的是這個 api
bStatus_t?tmos_start_task(?tmosTaskID?taskID,?tmosEvents?event,?tmosTimer?time??);
這個函數(shù)調(diào)用 只會執(zhí)行一次. 如果需要不斷的執(zhí)行,需要再每次事件里面再次調(diào)用 本api
還是建議,如有問題,貼些圖,貼些代碼片段出來,能盡量的描述清楚.
void?RF_Init(?void?) { ??uint8?state; ??rfConfig_t?rfConfig; ??taskID?=?TMOS_ProcessEventRegister(?RF_ProcessEvent?); ??rfConfig.accessAddress?=?0x71764129; //?禁止使用0x55555555以及0xAAAAAAAA?(?建議不超過24次位反轉(zhuǎn),且不超過連續(xù)的6個0或1?) ??rfConfig.CRCInit?=?0x555555; ??rfConfig.Channel?=?8; ??rfConfig.LLEMode?=?LLE_MODE_AUTO; ??rfConfig.rfStatusCB?=?RF_2G4StatusCallBack; ??state?=?RF_Config(?&rfConfig?); ??PRINT("rf?2.4g?init:?%x\n",state); // {?//?RX?mode // state?=?RF_Rx(?TX_DATA,10,?0xFF,?0xFF?); // PRINT("RX?mode.state?=?%x\n",state); // } {?//?TX?mode tmos_set_event(?taskID?,?SBP_RF_PERIODIC_EVT?); } }
if?(?events?&?SBP_RF_PERIODIC_EVT?) { ????RF_Shut(?); ????RF_Tx(?TX_DATA,10,?0xFF,?0xFF?); ????tmos_start_task(?taskID?,?SBP_RF_PERIODIC_EVT?,100?); ????return?events^SBP_RF_PERIODIC_EVT; ??}
使用的就是bStatus_t tmos_start_task( tmosTaskID taskID, tmosEvents event, tmosTimer time? );,但是已經(jīng)在回調(diào)里面再次使用CH571F就是不行,在CH573下就沒問題