1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近用Arduino操作AD5933出现了问题,读取状态寄存器的时候 老是读取0x70,有没有知道是什么原因啊。
贴一下我的代码 // AD5933 control // #include void writeAD5933(byte add, byte data) { Wire.beginTransmission(13); // this chip address is 0001101 13 Wire.write(add); Wire.write(data); Wire.endTransmission(); // stop transmitting } byte readAD5933(byte add) { byte date = 0; Wire.beginTransmission(13); // 00011011 Wire.write(byte(0xB0)); // Address pointer Wire.write(add); // Wire.endTransmission(); // stop transmitting Wire.requestFrom(13, 1,true); if(Wire.available()) { date = Wire.read(); // receive high byte (overwrites previous reading) } return date; } void setup() { Wire.begin(); Serial.begin(9600); } int temp = 0; byte templow = 0; byte temphigh = 1; byte statusReg = 0; float temper = 0.0; void loop() { // writer error. // step 1: write temperature test control code to register delay(1000); delay(1000); writeAD9777(byte(0x80), byte(0x90)); templow = 0x00; while(!(templow 0x07)) { templow = readAD5933(byte(0x8F)); Serial.println(templow,BIN); // print the reading delay(1000); } Serial.println(templow,BIN); // print the reading Serial.println("success!"); // delay(1000); } 读写寄存器的函数应该是没有问题的,因为我通过读写别的寄存器 ,如起始频率寄存器,频率论扫数寄存器等,先写入数据,再读取数据,发现能够读取之前写入的数据。 您好!状态寄存器的含义见数据手册表14。建议对芯片发一个reset命令试一试。 |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
为什么在频率为10^3 Hz处,产生的相移就可以确定约为-90度
1009 浏览 1 评论
【高手问答】电路的功能是为了0.6v到40v之间调压,运放发热严重
3251 浏览 8 评论
USB3.0 工业相机的传输速率是否受到电脑主板某些硬件的限制?
1188 浏览 0 评论
2381 浏览 1 评论
1321 浏览 0 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 00:29 , Processed in 0.825754 second(s), Total 73, Slave 54 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号