搜索
bottom↓
回复: 0

arduino I2C从机接收其他主机写入的数据怎么做呢

[复制链接]

出0入0汤圆

发表于 2022-1-29 00:10:31 | 显示全部楼层 |阅读模式
下面是和主机读取的代码,写入的话应该怎么做
// Wire Slave Receiver
// by Nicholas Zambetti <http://www.zambetti.com>

// Demonstrates use of the Wire library
// Receives data as an I2C/TWI slave device
// Refer to the "Wire Master Writer" example for use with this

// Created 29 March 2006

// This example code is in the public domain.


#include <Wire.h>

int addr = 0;

void setup() {
  Wire.begin(16);                // join i2c bus with address #8
  Wire.onReceive(receiveEvent); // register event
  Wire.onRequest(ggyy);
  Serial.begin(9600);           // start serial for output
}

void loop() {
  delay(100);
}

// function that executes whenever data is received from master
// this function is registered as an event, see setup()
void receiveEvent(int howMany)
{
  while (1 < Wire.available())
  { // loop through all but the last
    char c = Wire.read(); // receive byte as a character
    Serial.print("char:");
    Serial.print(c,HEX);         // print the character
  }
  addr = Wire.read();    // receive byte as an integer
  Serial.print("int:");
  Serial.println(addr,HEX);         // print the integer
  W
}

void ggyy()
{
//  Wire.write("5653454353453543"); // 送出 6 个char给IC 上的主机
  if(addr == 0x03)
  {
    Wire.write(0x35);
  }
   if(addr == 0x04)
  {
    Wire.write(0x36);
  }
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-8 23:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表