新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于I2C總線的單主多從單片機之間的通信

        基于I2C總線的單主多從單片機之間的通信

        作者: 時間:2013-02-17 來源:網絡 收藏

        圖3 從機接收流程圖

          4.2 編程中的注意事項

          a)在主機或從機初始化時,一定要設定數據傳輸方向;

          b)由于每次發送/接收數據時TWCR寄存器的中斷標志位必須置位,因此程序中要有等待TWCR寄存器中斷位置位程序,同時,為了避免由于某種原因導致中斷位不能置位造成等待程序進入死循環,在等待中斷位置位程序中要有等待超時返回程序。

          c)的使用,除了基本的啟動、結束、應答、非應答子程序外,還應有應答位檢查、發送和接收單字節、發送和接收多字節等子程序。

          5 結論

          作者在程序流程的每個關鍵部分都設置了錯誤查詢和錯誤處理,使得I2C程序能夠從錯誤中自動恢復,避免了由于I2C通信導致的錯誤而使得系統無法正常工作,文中還給出了部分發送子程序和編程注意事項。對于圖2和圖3的I2C,作者已在多個科研項目中進行了編程使用。實踐證明,按上述流程編寫I2C通信程序,主從單片機之間的通信非常可靠。

          本文作者創新點:程序流程的每個關鍵部分都設置了錯誤查詢和錯誤處理,使心通信能夠從錯誤中自動恢復,提高了使用I2C通信的可靠性,并且給出了避免死循環的錯誤處理程序。

        參考文獻:

        [1].Atmega128datasheethttp://www.dzsc.com/datasheet/Atmega128_html.
        [2].Atmega168datasheethttp://www.dzsc.com/datasheet/Atmega168_.html.
        [3].datasheethttp://www.dzsc.com/datasheet/_454556.html.

        通信相關文章:通信原理


        雙控開關相關文章:雙控開關原理

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 汤阴县| 成安县| 上饶市| 甘孜| 米林县| 社旗县| 巴楚县| 保德县| 宣威市| 拜城县| 都安| 昌黎县| 定州市| 保亭| 图片| 平山县| 霍城县| 临夏市| 涪陵区| 邵武市| 七台河市| 林西县| 蒙山县| 海林市| 洛隆县| 怀宁县| 临洮县| 浮梁县| 姚安县| 普兰店市| 马龙县| 墨江| 武夷山市| 临泽县| 承德县| 本溪市| 梁山县| 江永县| 大冶市| 鹤山市| 凤凰县|