新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于C語言的RS232串行接口通信實現

        基于C語言的RS232串行接口通信實現

        作者: 時間:2012-08-27 來源:網絡 收藏

        2.2 C的串口軟件

        2.2.1串口軟件流程圖

        圖2數據通信的流程圖
        圖2數據的流程圖

        2.2.2 C函數具體串口通信軟件過程

        由于I/O通信口的速度遠遠低于CPU的速度,在查詢工作方式時,CPU長時間處于等待狀態,其效率非常低,不利于CPU的資源利用。解決這一矛盾的有效辦法是采取中斷的通信方式,即當通信口自身準備就緒時,主動提出中斷申請,一旦CPU響應此申請,便暫停執行的工作,轉向中斷服務子程序,與外設進行數據的交換,數據交換完成后返回到主程序中的斷點繼續執行未完成的任務,這樣就避免了CPU資源的浪費㈨。

        為此必須對異步通信適配器以及中斷控制器進行控制。作為系統的外設,異步通信適配器和中斷控制器都有其對應的I/O口地址,所以本文采用C函數庫中的尋址函數outportb()和函數inportb()對上述芯片進行直接讀寫操作。其控制包括對中斷控制器地址的編程,允許IRQ3,IRQ4中斷,同時置MODEM控制寄存器地址為有效,這樣即可中斷方式的通信。根據圖2的串口通信流程圖,其具體實現串口通信的過程如下:

        1)初始化串口函數。

        參數說明:

        ComPortAddr 串口端口地址(coMl口是03F8H COM2口是02F8H)

        IntVectNum 中斷處理號(一般選擇0X0b)

        Baud 波特率

        Data 數據位

        STop 停止位

        Parity 奇偶校驗位

        c語言相關文章:c語言教程


        數字通信相關文章:數字通信原理


        通信相關文章:通信原理


        交換機相關文章:交換機工作原理




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 安顺市| 谷城县| 上饶县| 陇西县| 西藏| 石棉县| 冕宁县| 宁晋县| 中方县| 奇台县| 长沙县| 布拖县| 桃园市| 体育| 西平县| 镇雄县| 峨眉山市| 志丹县| 甘洛县| 永登县| 韩城市| 望谟县| 郁南县| 兴化市| 城市| 道真| 双鸭山市| 长白| 东兰县| 桐庐县| 玛沁县| 南城县| 上栗县| 河西区| 玉山县| 仁布县| 民和| 隆尧县| 海宁市| 罗源县| 辰溪县|