在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > μC/OS―II下中斷服務(wù)程序和外設(shè)驅(qū)動的開發(fā)

            μC/OS―II下中斷服務(wù)程序和外設(shè)驅(qū)動的開發(fā)

            作者: 時間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

            環(huán)狀緩沖區(qū)中指向被取出的下一字節(jié)的指針。

            本文引用地址:http://www.biyoush.com/article/201609/304155.htm

            SerialGetehar()用來獲取接收到的數(shù)據(jù),如果緩沖區(qū)已空時將任務(wù)掛起,接收到字節(jié)時,任務(wù)將被喚醒,同時從串行口接收字節(jié)。 SerialPutRxChar()用來將接收的字節(jié)放到緩沖區(qū)中,如果接收緩沖區(qū)已滿,則該字節(jié)被丟棄。當(dāng)字節(jié)插入到緩沖區(qū)中,SerialPutRxChar()通知數(shù)據(jù)接收信號量,使之將數(shù)據(jù)己到的消息傳達(dá)給所有等待的任務(wù)。為防止掛起應(yīng)用任務(wù),可以通過調(diào)用 SceiallsEmPty()去發(fā)現(xiàn)環(huán)狀隊列中是否有字節(jié)。

            當(dāng)需要發(fā)送數(shù)據(jù)給串行端口時,SerialPurChar()等待信號量在初始化發(fā)送信號量時應(yīng)該初始為緩沖區(qū)的大小。因此,當(dāng)緩沖區(qū)中沒有更多空間時,SerialPutChar()就掛起任務(wù),只要UART再次發(fā)送字節(jié),掛起任務(wù)就將恢復(fù)。SerialGctChar()被中斷服務(wù)程序調(diào)用,如果發(fā)送緩沖區(qū)至少還有一個字節(jié),Seri-a1GetChar()就返回一個從緩沖區(qū)發(fā)送的字節(jié)。如果緩沖區(qū)己空,則SerialGetChar()返回 Null,這將使調(diào)用停止進(jìn)一步的發(fā)送中斷,一直到有數(shù)據(jù)發(fā)送為止。

            4 異步串行通信的接口

            應(yīng)用任務(wù)可以通過如下的幾個來控制和訪問UART:SerialCfgPort()、SerialGetChar()、SerialInit()、SerialIsEmpty()、SerialIsFull()和SerialPutChar()。

            SerialCfgPort()用于建立串行端口的特征,在為指定端口調(diào)用其他服務(wù)前,必須先調(diào)用該,包括確定波特率、比特數(shù)、奇偶校驗和停止位等。

            SerialGetChar()使應(yīng)用程序從接收數(shù)據(jù)的環(huán)狀緩沖區(qū)中取出數(shù)據(jù)。

            SerialInit()用于初始化整個串口軟件模塊,且必須在該模塊提供的其他任何服務(wù)前調(diào)用。SeriallInit()將環(huán)狀緩沖區(qū)計數(shù)器的字節(jié)數(shù)清零,并初始化每個環(huán)狀緩沖區(qū)的IN和OUT指針,指向數(shù)據(jù)存儲區(qū)的開始處。數(shù)據(jù)接收信號量初始化為0,表示在環(huán)狀緩沖區(qū)無數(shù)據(jù)。用傳送緩沖區(qū)大小初始化數(shù)據(jù)傳送信號量,表示緩沖區(qū)已空。

            SerialIsEmpty()允許應(yīng)用程序確定是否有字節(jié)從串口接收進(jìn)來。本函數(shù)允許在無數(shù)據(jù)時避免將任務(wù)掛起。

            SerialIsFull()允許應(yīng)用程序確定傳送環(huán)狀緩沖區(qū)的狀態(tài),本函數(shù)可以在緩沖區(qū)已滿時避免將任務(wù)掛起。

            SerialPutChar()允許應(yīng)用程序向一個串行端口發(fā)送數(shù)據(jù)。

            結(jié) 語

            該串口通信模塊充分利用了實時內(nèi)核的任務(wù)調(diào)度功能和信號量機(jī)制,系統(tǒng)軟件模塊化,可讀性增強(qiáng),便于修改和移植,其設(shè)計思路和方法可以很好的應(yīng)用在多種情況下的測控系統(tǒng)中,系統(tǒng)的擴(kuò)展方便,具有一定的借鑒作用。該串口通信模塊已作為某鐵路供水遠(yuǎn)程控制終端的一部分,運行穩(wěn)定,提高了整個系統(tǒng)的運行效率和實時性。


            上一頁 1 2 下一頁

            關(guān)鍵詞: 寄存 指令 函數(shù) CPU

            評論


            相關(guān)推薦

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

            關(guān)閉