<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 牛人業(yè)話 > 一段關(guān)代碼的鑒賞

          一段關(guān)代碼的鑒賞

          作者: 時(shí)間:2016-07-21 來(lái)源:網(wǎng)絡(luò) 收藏

            在其他單位見(jiàn)到一位工程師,從事了上位軟件開(kāi)發(fā)很多年。近幾年開(kāi)始做電子產(chǎn)品的軟件。剛剛開(kāi)發(fā)完一款通訊產(chǎn)品。平臺(tái)是。其作品完整的體現(xiàn)了其在方面的深厚功底。觀之使人汗顏!我們可以欣賞幾行。

          本文引用地址:http://www.ex-cimer.com/article/201607/294355.htm

            if (MC52I_SetUsart(USART1_Recv,USART1_Send)==MC52I_USART_ISNULL){

            return ;

            }

            我們可以來(lái)看看MC52I_SetUsart(USART1_Recv,USART1_Send)函數(shù)的實(shí)現(xiàn)方法。

            函數(shù)原型如下:

            uint32_t MC52I_SetUsart(Recv_CALLBACK pRecv,Send_CALLBACK pSend)

            {

            if (pSend==NULL || pRecv==NULL){

            return MC52I_USART_ISNULL;

            }

            pUsartSend = pSend;

            pUsartRecv = pRecv;

            return SYS_OK;

            }

            Recv_CALLBACK, Send_CALLBACK 是

            typedef uint32_t (*Recv_CALLBACK)(void *pBuf,uint32_t *pSize);

            typedef uint32_t (*Send_CALLBACK)(void *pBuf,uint32_t Size);

            這是兩個(gè)指針類型,指向兩個(gè)函數(shù)。這兩個(gè)函數(shù)分別有兩個(gè)參數(shù)。

            在調(diào)用過(guò)程MC52I_SetUsart(USART1_Recv,USART1_Send);兩個(gè)參數(shù)USART1_Recv,USART1_Send 指向兩個(gè)函數(shù)

            uint32_t USART1_Recv(void *pBuf,uint32_t *pSize)

            {

            USART_Recv(&gSYS_USART1,pBuf,pSize);

            return SYS_OK;

            }

            uint32_t USART1_Send(void *pBuf,uint32_t Size)

            {

            return USART_Send(&gSYS_USART1,pBuf,Size);

            }

            我們?cè)賮?lái)分析一下函數(shù)的原型:

            uint32_t MC52I_SetUsart(Recv_CALLBACK pRecv,Send_CALLBACK pSend)

            {

            if (pSend==NULL || pRecv==NULL){

            return MC52I_USART_ISNULL;

            }

            pUsartSend = pSend;

            pUsartRecv = pRecv;

            return SYS_OK;

            }

            如果傳入?yún)?shù) pRecv或pSend指向空,那么返回MC52I_USART_ISNULL,大概可能是該模塊沒(méi)有安裝,否則將兩個(gè)全區(qū)指針指向這兩個(gè)參數(shù)。完成了對(duì)uint32_t USART1_Recv(void *pBuf,uint32_t *pSize)和uint32_t USART1_Send(void *pBuf,uint32_t Size)的調(diào)用??雌饋?lái)非常繞。細(xì)細(xì)理解確實(shí)非常精妙

           



          關(guān)鍵詞: stm32 編程

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();