PIC32单片机harmony开发环境 - uart例程和代码分析

2019-04-15 11:51发布

开发环境: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; } } }