久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 22850|回復: 2
打印 上一主題 下一主題
收起左側

ARDUINO的I2C通信詳解

[復制鏈接]
跳轉到指定樓層
樓主
ID:91350 發表于 2015-10-30 11:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
        最基本的功夫,今天可以坐下來做一個總結。
        I2C
是非常普通的通信方式,Arduino單片機集成了I2C庫,可以直接調用幾個函數實現I2C通信。Arduino MEGA2560開發板I2C接口,在班上對應的20--SDA 21--SCL。





                                                                                       圖1


        Arduino的I2C庫是Wire.h。常用庫函數如下:
        Wire.beginTransmission(Addr);
        Wire.write(data);
        Wire.endTransmission(void);

        Wire.requestFrom(Addr, num);
        Wire.available();
        Wire.read()。
        每個數據發出后,都必須有應答,只有在等到應答后,才能發出下一個數據或者指令。
        下面是一段代碼:
        
Wire.beginTransmission(0x01);
        Wire.write(0xAA);
        如果0x01發出后I2C器件沒有應答,那么0xAA就不能發送,這時候用示波器或者邏輯分析儀看,就只能看到發出了Start信號和數據0x01。
        Wire.beginTransmission(Addr)只發送起始信號和I2C地址,Addr是I2C總線地址。
        Wire.write(data)只發送數據,data就是希望發送的數據,而且是發一次,地址就自動加一。
        Wire.endTransmission(void)發送停止信號。
        Wire.requestFrom(Addr, num)向已知地址器件獲取連續num個數據,這時候需要注意,數據只是存起來了,并沒有真正返回。
        Wire.read()就是用來讀回前面那些存起來的數據,而且是讀一次地址自動加一。
        Wire.available()則返回已經存了多少個數據。





分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:403361 發表于 2018-12-10 14:33 | 只看該作者
能不能發送double類型或者float類型的數據,write只能發送byte類型的數據
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕免费在线观看 | 欧洲一区二区 | 国产蜜臀av | 香港三日本三级少妇66 | 国产91页| 久久最新网址 | 国产成人免费视频 | 欧美又粗又长 | 高清一级片 | 天天色影院 | 成人在线视频观看 | 欧美日韩亚洲天堂 | 亚洲福利网站 | 中文字幕精品视频 | 操操操干干干 | 国产成人精品视频 | 欧美一级做性受免费大片免费 | 国产99在线 | 久久久久久久久国产 | 亚洲毛片在线 | 国产成人一区二区 | 在线观看日韩视频 | 五月网站 | 青青草手机视频 | 精品日韩一区 | 国产视频一区二区在线 | 欧美一区二区三区在线观看 | 色涩av | 午夜精品久久久久久久久久久久 | 91国产丝袜在线播放 | 操碰在线视频 | 中文在线观看视频 | 欧美亚洲 | 精品少妇一区二区三区免费观 | 国产精品一区二区久久 | 天天干天天操天天爽 | 日本中文字幕在线观看 | 日韩毛片网| 免费网站av | 日韩视频在线播放 | 久久亚洲成人 |