请问如何用stm32获取AD7746数据

2019-07-14 15:53发布

AD7746 芯片是测微小电容的,接口为I2C。
求做过该方面类似问题的大神指点一二,例如寄存器
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
zhuzb0754
1楼-- · 2019-07-14 16:51
器件手册是要看的。官网的代码是最好的参考,
sjjs001
2楼-- · 2019-07-14 20:40
 精彩回答 2  元偷偷看……
liutiefu
3楼-- · 2019-07-14 20:54
我现在用的模拟I2C 但是JLINK调试的时候,查看result  一直是4 (也就是超了量程),怎么办
sjjs001
4楼-- · 2019-07-14 21:09
我不知道你的result指的是你设置的变量还是?回答帖子麻烦你能说清楚一些。
但是既然模拟iic,那么首先用最简单的办法来操作不就行了,用来验证iic读写是否OK么。对吧。我就用最简单的办法来实现,不知道你是怎么来验证的。
另外说个题外话,如果模拟iic建议你看看原子的例程,如果用硬件iic建议你看看野火例程。
我举个我验证iic是否读写OK的例子你来看,当然可能您会有更好的方法。
  1.     I2C_EEPROM_BufferRead(read_table,0x0000,1024);//先读一次数据,read_table[1024] eeprom的大小设置为1024

  2.     memset(write_table,0,1024);//清空write_talbe这个数组,write_table[1024] eeprom的大小设置为1024
  3.    
  4.     I2C_EEPROM_BufferWrite(write_table,0x0000,1024);
  5.     I2C_EEPROM_BufferRead(read_table,0x0000,1024);

  6.     for(i2c_cnt =0;i2c_cnt<10;i2c_cnt++)

  7.        {            write_table[i2c_cnt] = (u8) i2c_cnt;
  8.        }
  9.    
  10.     I2C_EEPROM_BufferWrite(write_table,0x0000,10);
  11.     I2C_EEPROM_BufferRead(read_table,0x0000,10);

  12.     if(memcmp(read_table,write_table,10)==0 )
  13.         {
  14.             LED1_ON;
  15.                         //可以利用memset来清空write_table
  16.         }
  17.     else
  18.         {
  19.             LED1_OFF;
  20.             delay_ms(300);
  21.         }
复制代码
liutiefu
5楼-- · 2019-07-14 22:24
是用I2C方式,然后RESULT是过去电容的值。现在单步调试就是发送了地址之后没有ACK应答。
liutiefu
6楼-- · 2019-07-15 01:44
现在检查出错误之后,可以通过I2C通信,但是读出来的值一直是FFFFFF

一周热门 更多>