OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10567|回复: 1

stm32模拟I2C控制ADS1112读取AD值不正确,却能正确读取寄存器值。。。

[复制链接]

13

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2013-7-15
在线时间
0 小时
发表于 2013-8-20 16:23:07 | 显示全部楼层 |阅读模式
程序代码 一起附上,期待大神指点。。。。stm32模拟I2C控制ADS1112读取AD值不正确,却能正确读取寄存器值。。。
单步调试 各种应答方面 也没有问题。。


  
   SystemInit();
   ili9320_Initializtion();           //显示初始化
   RCC_Configuration();
//  ADS7843_Init();                 //触屏初始化

   ili9320_Clear(Blue2);  
   I2C_GPIO_Config();
   
   ili9320_Clear(Blue2);  
   I2C_Start();
   I2C_SendByte(0x90);
   I2C_WaitAck();
   I2C_SendByte(0x8c);
   I2C_WaitAck();
   I2C_Stop();
   I2C_delay();


while(1)

  // 


   I2C_Start();
   I2C_SendByte(0x91);
    I2C_delay();
   I2C_WaitAck();
   I2C_delay();
   highbit=I2C_ReceiveByte();//第一字节返回AD值高八位,返回不正确
    
   I2C_Ack();
   I2C_delay();
     // I2C_Ack();
   lowbit=I2C_ReceiveByte();//第二字节返回AD值低八位,返回不正确
   I2C_Ack();
     I2C_delay();
    //  I2C_Ack();
   cbit=I2C_ReceiveByte();//第三个直接返回寄存器值 返回正确
   I2C_Ack();
   I2C_Stop();
              sprintf(buf,"%d",highbit);
           GUI_Text2(Line0 ,0,(u8*)buf,White,Red);
           sprintf(buf,"%d",lowbit);
           GUI_Text2(Line1,0,(u8*)buf,White,Red);
            sprintf(buf,"%d",cbit);
           GUI_Text2(Line2,0,(u8*)buf,White,Red);

        delay_ms(500);
  }


相关中文资料http://www.eefocus.com/chaoyi_1986/blog/2012-04/167098_2e292.html

DATESHEET
http://www.ic5.cn/p_ADS1112_aoZC.html

I2CandADS1112.zip

5.78 MB, 下载次数: 97

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-20 23:23:39 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-14 17:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表