硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1136|回复: 1
收起左侧

关于ADS1255读数抖动的问题

[复制链接]

4

主题

2

回帖

14

积分

新手上路

积分
14
发表于 2024-7-22 21:57:18 | 显示全部楼层 |阅读模式
各位大佬,我用AD1255采集电压,再通过SPI通信传给C8T6,但是读数结果一直变化,没有规律。想问问会是什么原因?
ad初始化函数:
void ads1255_init(void)
{
  SPI2_CS_RESET;
  delay_ms(500);
  /**************/
    while(DRDY==1);
    ads1255_selfcal();
    delay_ms(5000);
    ads1255_wakeup();
    delay_ms(2000);
    ads1255_reset();
    delay_ms(3000);
   ads1255_write_reg(ADS1256_STATUS,0x06);  //使用缓冲
   ads1255_write_reg(ADS1256_IO,0x00);//AIN0是正的,单端测量
   ads1255_write_reg(ADS1256_ADCON,ADS1256_GAIN_1);//时钟输出和传感器检测电流源功能关闭,PGA为1
   ads1255_write_reg(ADS1256_DRATE,ADS1256_DRATE_1000SPS);//数据速度1000SPS
    ads1255_selfcal();
    delay_ms(5000);
    SPI2_CS_SET;
}

AD读取函数:
float get_ad24_data(void)
{   
  SPI2_CS_RESET;
  delay_ms(5);
  while(DRDY==1);
  delay_us(200);
        ads1255_write_reg(ADS1256_MUX,ADS1256_MUXP_AIN0);   //读取通道0
  ads1255_rdata();
        ads1255_rdata();
        ads1255_rdata();
  delay_ms(5);
  retdata=ads1255_read();                       //读取
  delay_us(5);
  SPI2_CS_SET;
        if (retdata>0x7FFFFF)                                                           // if MSB=1,
        {
                retdata -= 0x800000;                                                       //do 2's complement               
        }      
        return retdata;
}

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116217
QQ
发表于 2024-7-23 10:31:11 | 显示全部楼层
1255是不是和1256差不多,如果差不多的话,可以参考下我们的代码,V5,V6,V7都做例子了。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-10 09:38 , Processed in 0.464212 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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