<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 嵌入式實(shí)時(shí)操作系統μC/OS-II串口通信的設計與實(shí)現

嵌入式實(shí)時(shí)操作系統μC/OS-II串口通信的設計與實(shí)現

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

摘要:為解決μC/中信號量、消息郵箱使用方法的問(wèn)題,提出了一種以STM32V評估板為硬件平臺和μC/OS-Ⅱ的程序方案。該方案采用Cortex-M3架構的ARM處理器STM32F103VB作為主控制芯片,ST3232作為電平轉換器。軟件部分描述了信號量、消息郵箱的應用場(chǎng)合和基本操作方法,通過(guò)信號量和消息郵箱的配合使用保證任務(wù)間的數據傳輸的同步性。給出了整個(gè)程序中的設計思路,程序開(kāi)發(fā)使用STM32F103VB處理器自帶的固件庫,減少了繁瑣的寄存器配置,降低了程序開(kāi)發(fā)強度。實(shí)驗驗證了在2種不用通信速率下數據傳輸具有誤碼率低、傳輸穩定可靠的特點(diǎn),并且若能夠配合相應的數據校驗算法就可將其應用于工業(yè)現場(chǎng)的數據通信。
關(guān)鍵詞:;μC/;信號量;消息郵箱;串口通信;STM32F103VB;ST3232

本文引用地址:http://dyxdggzs.com/article/156583.htm

ARM是目前領(lǐng)域中應用最廣泛的RISC微處理器結構,以低成本、低功耗、高性能的特點(diǎn)占據了系統應用領(lǐng)域的領(lǐng)先地位,已遍及工業(yè)控制、消費類(lèi)電子產(chǎn)品、通信系統、網(wǎng)絡(luò )系統、無(wú)線(xiàn)系統等各類(lèi)產(chǎn)品市場(chǎng)。STM32F103VB是基于A(yíng)RM新內核Cortex-M3的通用微處理器,STM32V評估板是基于該芯片的學(xué)習板并集成了仿真調試器(Ulink_Me),可以方便用戶(hù)快速學(xué)習和開(kāi)發(fā)用戶(hù)程序。目前常見(jiàn)的系統有:WinCE、Linux、pSoS、VxWorks和μC/等。μC/OS-Ⅱ是專(zhuān)門(mén)為嵌入式系統應用設計的,具有源碼公開(kāi)、性好、可移植裁剪、高效穩定和教學(xué)科研免費使用等特點(diǎn),已經(jīng)成功移植到8、16、32和64位等多種微處理器上,廣泛應用于照相攝影、醫療器械、音響設備、工業(yè)機器人控制、發(fā)動(dòng)機控制、航空器、高速公路電話(huà)系統、自動(dòng)提款機等眾多領(lǐng)域。這里以STM32V評估板為硬件開(kāi)發(fā)平臺,結合μC/OS-II嵌入式,設計了基于信號量、消息郵箱的串口通信應用程序。

1 信號量、消息郵箱
μC/OS-II由事件(Event)驅動(dòng),一般事件包括信號量(Semaphores)、互斥信號量(Mutex semaphores)、消息郵箱(Message Mail boxes)、消息隊列(Message Query)、事件標志組(Event Flag Group)等。其中信號量和消息郵箱作為一種常見(jiàn)的通信機制,在數據通信過(guò)程中應用最為廣泛。
1.1 信號量(Semaphores)
μC/OS-II的信號量由2部分組成:一個(gè)是信號的計數值(0~65 535);另一個(gè)是由等待該信號量的任務(wù)組成的等待任務(wù)列表。信號量可用于以下場(chǎng)合:允許一個(gè)任務(wù)與其他任務(wù)或中斷同步;取得共享資源的使用權(滿(mǎn)足互斥條件);標志事件的發(fā)生。
對信號量一般可以實(shí)施以下3種操作:初始化(INITIALIZE)信號量或者稱(chēng)為創(chuàng )建信號量(CREATE);等待信號量(WAIT)或者稱(chēng)為掛起信號量(PEND);發(fā)送信號量(POST)。
信號量在初始化過(guò)程中需要給信號量賦初值,等待信號量的任務(wù)表(WAWING LIST)應清為空。信號量的使用需要調用相應的函數并配置其相關(guān)的宏定義,具體如表1所示。

1.JPG


1.2 消息郵箱(Message Mail boxes)
消息郵箱能使任務(wù)或中斷服務(wù)向另外一個(gè)任務(wù)發(fā)送一個(gè)指針型的變量,這個(gè)指針指向一個(gè)包含指定“消息”的數據結構。消息郵箱發(fā)送的不是消息本身,而是消息的地址指針。
消息郵箱可用于通知一個(gè)事件發(fā)生或作為二值信號量使用。消息郵箱的工作原理是郵箱在初始化時(shí)建立一個(gè)等待消息的任務(wù)列表,當郵箱為空時(shí),等待消息的任務(wù)就掛起,并且被加入到等待消息的任務(wù)列表中。當郵箱收到消息時(shí),等待任務(wù)列表中優(yōu)先級最高的任務(wù)或者最先等待消息的任務(wù)得到消息,且轉入就緒并從任務(wù)列表中清除。
對消息郵箱的操作一般有3種:郵箱初始化(INITIALIZE),或者稱(chēng)為建立郵箱(CREATE);發(fā)送消息給郵箱(POST);等待消息進(jìn)入郵箱(PE-ND);無(wú)等待請求郵箱消息(ACCEFT)。
消息郵箱的使用需要調用相應的函數并配置其相關(guān)的宏定義,具體如表2所示。

2.JPG

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 3 4 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>