首页 > 其他分享 >Arduino Wire.requestFrom 函数读取没有反应

Arduino Wire.requestFrom 函数读取没有反应

时间:2022-11-24 21:14:28浏览次数:51  
标签:Wire 读取 Arduino requestFrom uint8 read data

目录

前言

在读取DA217 传感器 ID 的时候,发现把需要读取的寄存器地址写过去之后,再用 Wire.requestFrom 去读取就没有反应了(程序不会继续运行,会卡死到此处)。

过程

  1. 参看 DA217 手册,看 I2C 通讯部分里面有一张通讯示例图。
  2. 其中 Table 13 是读取示意图,在里面可以看到把寄存器地址写过去之后,直接就发送下一个开始位,而不是发送 P(停止位)。所以写代码的时候需要注意这一点,在把寄存器地址写完之后,不能发送停止位。对应到代码里面就是 Wire.endTransmission(0); //这里的参数0,表示不发送停止位。
  3. 所以最终的读取代码是
uint8_t DA217::da217_read_reg(uint8_t reg)
{
		uint8_t data = 0;
		Wire.beginTransmission(_address); // start transmission to device 
		Wire.write(reg); // sends register address to read from
		Wire.endTransmission(0); // end transmission

		Wire.requestFrom((uint8_t)_address, (size_t)1,true);// send data n-bytes read
		Wire.available();
		data = Wire.read(); // receive DATA
		return 	data;
}

参考文章

1.【arduino库文件】-wire.h

这篇文章对 Arduino 的I2C函数有很详细的介绍。

标签:Wire,读取,Arduino,requestFrom,uint8,read,data
From: https://www.cnblogs.com/Spin-jump/p/16902313.html

相关文章

  • react-app-rewired的使用备注&&禁止生成.map(对应隐藏源码)
    一:使用react-app-rewired时,除了根据文档对应修改设置外,还给予了一些配合此插件直接使用的webpack插件集:​​https://github.com/timarney/react-app-rewired#version-1x......
  • ubuntu - linux开源 网络包分析工具 Wireshark
    跟踪一个网络程序,想看看它的封包收发情况,以前在windows下自已写了一个简单的封包分析工具,但是linux下写网络程序没经验,而且也就临时想用一下,不想自已再开发一次了。google......
  • @autowired和@resource注解的区别
    转:https://m.php.cn/java/base/463170.html区别:1、@Autowired注解由Spring提供,只按照byType注入;@resource注解由J2EE提供,默认按照byName自动注入。2、@Autowired默认按类......
  • @Autowired和@Resource区别
    autowired和resource是什么?@Autowired是Spring中的注解importorg.springframework.beans.factory.annotation.Autowired;@Resource是java提供的注解importjavax......
  • wireguard配置实时
    server-peer#定义网络接口[Interface]#定义wireguard的内网IPAddress=10.10.10.1/24#内网转发规则,将数据包做MASQUERADE源地址转换,并通过eth0转发出去#eth0根......
  • tcpdump抓取CoAP数据包,WireShark解析
    考虑这样的场景,设备使用NB-IoT发送CoAP数据包到服务器,服务器是Linux,作为服务器的Linux通常只有命令行。在这样的场景下想要捕获CoAP数据包进行分析。首先在设备端捕获是不现......
  • 白泽六足机器人_arduino_v1——零件准备
    导航在这里:白泽六足机器人_arduino_v11.主控板x1Baize_ServoDriver_esp8266​或者Baize_ServoDriver_esp32如下图左边为 Baize_ServoDriver_esp8266;右边为Baize_ServoDriv......
  • Arduino四足开源机器猫-Opencat(导航贴)
    本内容由我和小伙伴共同编写,未经授权,谢绝转载!1.项目介绍2.组装调试教程(一)Opencat-F(1)资料地址(包含程序代码&&3D打印图纸):链接:https://pan.baidu.com/s/1gTTPReQL5uUkNbS4u-Po......
  • Arduino白泽四足机器人(导航贴)
    目录​​1.机器人介绍​​​​开源协议​​​​零件制作​​​​CAD激光切割版本 ​​​​ 3D打印版本图纸​​​​2.组装调试教程​​​​(1)配置库文件​​​​(2)LGT8F328P......
  • @Autowired的这些新姿势,你学会了
      1.@Autowired的默认装配我们都知道在spring中@Autowired注解,是用来自动装配对象的。通常,我们在项目中是这样用的:packagecom.sue.cache.service;importorg.s......