这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » PIC32单片机harmony开发环境-uart例程和代码分析

共4条 1/1 1 跳转至

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

助工
2021-08-12 23:57:00     打赏

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

        }

    }

}




专家
2021-08-13 11:36:03     打赏
2楼

学习学习


工程师
2021-08-13 23:47:07     打赏
3楼

分析的挺好的


高工
2021-08-15 23:58:17     打赏
4楼

分析的还是比较到位的


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]