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

          新聞中心

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

          嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II串口通信的設(shè)計(jì)與實(shí)現(xiàn)

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

          由該流程圖可以看出:本程序中創(chuàng)建了4個(gè)任務(wù),即LED顯示任務(wù),液晶顯示任務(wù),數(shù)據(jù)發(fā)送任務(wù)和數(shù)據(jù)發(fā)送控制任務(wù)。每一個(gè)任務(wù)都要有相應(yīng)的優(yōu)先級(jí)和任務(wù)堆??臻g,程序中每個(gè)任務(wù)的堆??臻g為512個(gè)字節(jié),優(yōu)先級(jí)依次為11,13,4,6。
          ST公司用標(biāo)準(zhǔn)的ANSI C封裝了ARM微處理器中各個(gè)功能寄存器,為用戶應(yīng)用程序的開發(fā)提供了豐富的固件庫(Firmware)。固件庫方便用戶對(duì)底層微處理器外設(shè)進(jìn)行初始化配置,如初始化函數(shù)為void USARTConfigurtion(void),具體代碼如下:

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

          6.JPG

          7.JPG

          初始化操作包括了時(shí)鐘初始化、中斷初始化,I/O接口初始化,初始化等。主程序在完成初始化操作后創(chuàng)建信號(hào)量、消息郵箱和任務(wù)創(chuàng)建。由于信號(hào)量、郵箱都是事件類型,所以需用OS_EV-ENT來定義,信號(hào)量、郵箱的建立由函數(shù)App_EventCreate()完成。

          使用信號(hào)量和消息郵箱可以保持任務(wù)之間的的同步,串口數(shù)據(jù)發(fā)送任務(wù)App_TaskSendata(void-*p_arg)發(fā)送信號(hào)量App_UserIFSem通知數(shù)據(jù)發(fā)送控制任務(wù)App_TaskSendata Ctrl(void*p_arg),數(shù)據(jù)發(fā)送控制任務(wù)在接收到信號(hào)量App_User IFSem后,發(fā)送消息(www.Real Vie-w.com\n)給指定郵箱App_UserIFMbox,串口調(diào)用數(shù)據(jù)發(fā)送函數(shù)USART_Send Data(),串口數(shù)據(jù)發(fā)送任務(wù)數(shù)據(jù)發(fā)送完成后發(fā)送通知信號(hào)量App_ UserIFSeml給數(shù)據(jù)發(fā)送控制任務(wù),數(shù)據(jù)發(fā)送控制任務(wù)在接收到發(fā)送完成信號(hào)量App_UserIFSeml后,向指定郵箱發(fā)送另一則消息(www.xust. edu.cn\n),數(shù)據(jù)發(fā)送任務(wù)在接收到消息郵箱后通過串口發(fā)送接收到的消息內(nèi)容給PC機(jī)。具體代碼如下:

          8.JPG

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評(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); })();