开发环境:mplab 3.45 harmony 1.09 xc32 1.42
源代码下载:http://download.csdn.net/detail/zn2857/9712707
源代码分析:
void APP_Tasks ( void )
{/* Check the application's current state. */switch ( appData.state ){/* Application's initial state. */case APP_STATE_INIT:{bool appInitialized = true;if (appInitialized){/* Open the USART Driver for USART1 Client */appData.drvUartHandle = DRV_USART_Open( DRV_USART_INDEX_0,DRV_IO_INTENT_READWRITE );appData.state = APP_STATE_CHECK_DRVR_STATE;}break;}case APP_STATE_CHECK_DRVR_STATE:{/* Check the USART1 driver handler */if (appData.drvUartHandle == DRV_HANDLE_INVALID ){/* Set the uart state to Ready */appData.state = APP_STATE_INIT;return;}DRV_USART_ByteReceiveCallbackSet(DRV_USART_INDEX_0, (DRV_USART_BYTE_EVENT_HANDLER)Uart_LoopBack);appData.state = APP_STATE_IDLE;break;}case APP_STATE_SERVICE_TASKS:{uint8_t numBytes = 0;while( numBytes < 1 ){numBytes++;if( !(DRV_USART_TRANSFER_STATUS_TRANSMIT_FULL & DRV_USART_TransferStatus(appData.drvUartHandle)) ){DRV_USART_WriteByte(appData.drvUartHandle, temp);}}appData.state = APP_STATE_IDLE;break;}case APP_STATE_IDLE:{break;}/* TODO: implement your application state machine.*//* The default state should never be executed. */default:{/* TODO: Handle error in application's state machine. */break;}}
}