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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Linux PC和51系列單片機(jī)串行通信的設(shè)計

          Linux PC和51系列單片機(jī)串行通信的設(shè)計

          作者: 時間:2012-03-20 來源:網(wǎng)絡(luò) 收藏

          初始化后,就可以進(jìn)行數(shù)據(jù)的收發(fā)了,接受數(shù)據(jù)之前必須保證接收數(shù)據(jù)就緒,這可以通過0x2fd的D0來判斷,發(fā)送數(shù)據(jù)之前必須保證發(fā)送寄存器為空,這可以通過0x2fd的D5來判斷,代碼如下:

          44.gif

          3 結(jié)語

          實(shí)驗(yàn)表明,此系統(tǒng)采用的2種方法都完全實(shí)現(xiàn)了機(jī)與之間點(diǎn)對點(diǎn)的,方法簡單可靠,基本上在需要用到機(jī)與的場合均可采用此種方法。隨著近年來在國內(nèi)應(yīng)用范圍的日益壯大,在工業(yè)控制、數(shù)據(jù)采集等領(lǐng)域也必將越來越多的采用,本文可以算作是一個有益的嘗試。當(dāng)然在實(shí)際應(yīng)用中還需要考慮一些問題,比如進(jìn)行出錯處理的問題,可以在一個要發(fā)送的字符串后再發(fā)送一個校驗(yàn)和,當(dāng)收到返回的校驗(yàn)和與發(fā)送的校驗(yàn)和不一致時再進(jìn)行重發(fā),再比如所采用的RS232C傳輸距離很短,并且抗干擾能力很差,這時需要將總線轉(zhuǎn)換成差分傳輸?shù)腞S485/RS422。另外,稍加改進(jìn),就可實(shí)現(xiàn)機(jī)與多片51,這時由于共用一條總線,必須給每個單片機(jī)分配一個地址,然后由PC機(jī)對總線進(jìn)行仲裁,只有獲得總線使用權(quán)的單片機(jī)才能與上位機(jī)進(jìn)行通信,這里不再贅述。

          總之,本文只是為Linux PC和單片機(jī)通信提供了一個典型的范例,要應(yīng)用到實(shí)際的項目中去,還需要根據(jù)實(shí)際的情況具體考慮,靈活應(yīng)用,最終才能形成一個可靠的基于Linux平臺的系統(tǒng)。

          參考文獻(xiàn)
           ?。?] PhiCornes.Linux從入門到精通[M].童壽彬譯.北京:電子工業(yè)出版社,1998.
            [2]Peter Baumann H . Linux Serial - programming - HOWTO中文版[M].曾元佑譯.
           ?。?]萬福君,潘松峰.單片微機(jī)原理系統(tǒng)與應(yīng)用[M].合肥:中國科學(xué)技術(shù)大學(xué)出版社,2001.
           ?。?][美]安格斯生.串行端口大全[M].精英科技譯.北京:中國電力出版社,2001.

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

          上一頁 1 2 3 下一頁

          評論


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