[PIC®/AVR®/dsPIC®产品] AVR 下用Arduino操作I2C

[复制链接]
 楼主| 幸福小强 发表于 2023-11-5 20:35 | 显示全部楼层 |阅读模式
  1. <p>// Send control and register address bytes</p><p>Wire.beginTransmission(0x20);</p><p>Wire.write(0x00);</p><p>// Write data to IODIRA register</p><p>Wire.write(0xFF);</p><p>// End session</p><p>Wire.endTransmission();</p><p>// Send control and register address bytes</p><p>Wire.beginTransmission(0x20);</p><p>Wire.write(0x12); // GPIOA</p><p>Wire.endTransmission();</p><p>// Read data from port A</p><p>Wire.requestFrom(0x20, 1); // set R/W bit to 1 (read)</p><p>portval = Wire.read(); // still points to 0x12</p><p>Since the GP I/O ports are configured as inputs by default at power-up or after a reset</p><p>(see Table 10-9), the first step could have been omitted. To configure the port as an</p><p>output the IODIRA bits would be set to 0. This is shown in the code snippet in</p><p>Example 10-8.</p><p>Example 10-8. Writing data to the output port</p><p>// Send control and register address bytes</p><p>Wire.beginTransmission(0x20);</p><p>Wire.write(0x00);</p><p>// Write data to IODIRA register</p><p>Wire.write(0x0);</p><p>// End</p><p>Wire.endTransmission();</p><p>// Send control and register address bytes</p><p>Wire.beginTransmission(0x20);</p><p>Wire.write(0x12); // GPIOA</p><p>// Write data to port A</p><p>Wire.write(portval);</p><p>Wire.endTransmission();</p>


zhuotuzi 发表于 2023-11-7 22:27 | 显示全部楼层
  1. // Send control and register address bytes
  2. Wire.beginTransmission(0x20);
  3. Wire.write(0x00);
  4. // Write data to IODIRA register
  5. Wire.write(0xFF);
  6. // End session
  7. Wire.endTransmission();
  8. // Send control and register address bytes
  9. Wire.beginTransmission(0x20);
  10. Wire.write(0x12);
  11. // GPIOA
  12. Wire.endTransmission();
  13. // Read data from port A
  14. Wire.requestFrom(0x20, 1);
  15. // set R/W bit to 1 (read)
  16. portval = Wire.read();
  17. // Send control and register address bytesWire.beginTransmission(0x20);
  18. Wire.write(0x00);
  19. // Write data to IODIRA register
  20. Wire.write(0x0);
  21. // EndWire.endTransmission();
  22. // Send control and register address bytes
  23. Wire.beginTransmission(0x20);
  24. Wire.write(0x12);
  25. // GPIOA
  26. // Write data to port A
  27. Wire.write(portval);
  28. Wire.endTransmission();
zhuotuzi 发表于 2023-11-7 22:28 | 显示全部楼层
乱了,帮你修改下。
Undshing 发表于 2023-11-12 18:40 | 显示全部楼层
本帖最后由 Undshing 于 2023-11-12 18:42 编辑

这个用Arduino多啊
pzsh 发表于 2023-11-21 11:55 | 显示全部楼层
Arduino还是简单一些,但是好像那个环境下不能单步调试
Bowclad 发表于 2023-11-23 14:54 来自手机 | 显示全部楼层
好乱的格式
MessageRing 发表于 2023-11-27 14:50 来自手机 | 显示全部楼层
还是arduino用的多啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

143

主题

1720

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部