欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 23193|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

ARDUINO的I2C通信詳解

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:91350 發(fā)表于 2015-10-30 11:53 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
        最基本的功夫,今天可以坐下來做一個(gè)總結(jié)。
        I2C
是非常普通的通信方式,Arduino單片機(jī)集成了I2C庫(kù),可以直接調(diào)用幾個(gè)函數(shù)實(shí)現(xiàn)I2C通信。Arduino MEGA2560開發(fā)板I2C接口,在班上對(duì)應(yīng)的20--SDA 21--SCL。





                                                                                       圖1


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

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





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

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

無效樓層,該帖已經(jīng)被刪除
板凳
ID:403361 發(fā)表于 2018-12-10 14:33 | 只看該作者
能不能發(fā)送double類型或者float類型的數(shù)據(jù),write只能發(fā)送byte類型的數(shù)據(jù)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表