完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
题,我用uno和mega2560(相互能进行IIC通信)都测试了以下代码,传感器是MAX44009,读写时地址如下:A0引脚我接了板子上的GND,所以写入地址是0x94. 但是程序运行我发送一个字符后读取传感器,总是返回2,即在地址发送时接收到NACK信号,一直这样,困扰我两天了,求大神指教! #include void setup() { // put your setup code here, to run once: Wire.begin(); Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: unsigned int error=0, luxData, m***=0, l***=0,m=0, n=0; if( Serial.available() ) { luxData = Serial.read(); //随意接受一个字符,开始读取传感器 Wire.beginTransmission(0x94); //地址+写入,高电平 1001 011x;低电平 1001 010x m = Wire.write(0x02); //配置器地址:02h n = Wire.write(0x42); // error = Wire.endTransmission(); //判断通信时哪里出错 delay(200); if (error != 0) { Serial.println(error); } else { Wire.beginTransmission(0x95); //地址+读取 Wire.write(0x03); //寄存器地址 Wire.endTransmission(false); Wire.requestFrom(0x94, 1); m*** = Wire.read(); Wire.beginTransmission(0x95); //读取 Wire.write(0x04); /低位寄存器地址 Wire.endTransmission(false); Wire.requestFrom(0x94, 1); l*** = Wire.read(); } m*** = (m*** >>4 ) & 0x0f; l***= ((m*** << 4) & 0xf0) | l***; Serial.println(m***); Serial.println(l***); } } |
|
相关推荐
1个回答
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
WIO Terminal +MCP2515 实现车辆OBD的速度监控
10359 浏览 0 评论
60659 浏览 77 评论
5952 浏览 3 评论
一块扩展板完成Arduino的10类37项实验(代码+图形+仿真)
36013 浏览 219 评论
10022 浏览 0 评论
484浏览 1评论
请教:esp32中用u8g2显示shtc3传感器数据到i2c液晶屏,显示不稳定的问题
1237浏览 1评论
1383浏览 1评论
597浏览 0评论
715浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 10:03 , Processed in 0.458443 second(s), Total 48, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号