RT,
void RF_2G4StatusCallBack( uint8 sta , uint8 crc, uint8 *rxBuf ) { switch( sta ) { case RX_MODE_RX_DATA: RF_Shut(); if( crc == 1 ) { //PRINT("crc error\n"); } else if( crc == 2 ) { //PRINT("match type error\n"); } else { if(l_rf_read_cb != NULL){ l_rf_read_cb(rxBuf); } } RF_Rx( NULL,0, l_package_type, 0xFF ); break; } //PRINT("STA: %x\n",sta); } void rf_read_cb(uint8_t* ptData){ #ifdef DEBUG_ME /*int i = 0; PRINT("read data:"); for(i=0;i 245){ PRINT("data > 245\n"); return; } /*if(queue_can_write_len(&g_bt_queue) >= ptData[1]+2){ queue_put(&g_bt_queue,ptData[1]); queue_put_buff(&g_bt_queue,ptData+2,ptData[1]);//data }else{ PRINT("queue full\n"); } tmos_set_event(l_task_id, SBP_MAIN_RF_EVT); PRINT("end\n");*/ memcpy(uart_send_buff,ptData+2,ptData[1]); UART0_SendString( uart_send_buff, ptData[1]); //PRINT("e\n"); }
一块板子在收,并打印,一块板子在发,当发送的板子使用while(1) tx的时候,接收的板子可能出现卡死,TMOS set event后再也进不了
RF_2G4StatusCallBack
,只要把发送的板子关闭,那接收的板子立马就正常了。
如果发送的板子,发送的时候加上延时,而非while(1) tx,那么接收的板子就没事
热门产品 :
CH32X035: 32位USB+USB PD单片机