This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] ADS1232:Ads1232读取数据

Guru**** 2538950 points
Other Parts Discussed in Thread: ADS1232

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/581025/ads1232-ads1232-read-data

部件号:ADS1232

大家好。 我将ads1232用于称重传感器,但 ı 无法从我的ADC读取数据。 我只能在显示屏上看到"8.8365万",不能更改。

我使用这些代码逻辑读取和SPI读取。 有人帮助我?

#include <main.h>
#include <max7219.c>
#define p蜂 鸣器pin_d7

#define dout pin_a5
#define clk pin_a3

#define pwd pin_b3
#define spi_mode_3 (SPI_H_to_L | SPI_Xmit_L_to_H)
void Yaz (&int32 val,INT8
,t


,8,8,c,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
UINT8 byte0,byte1,byte2,byte3;

signed Int32 read (void){//这用于逻辑读取

signed Int32 ADC_bit;
while (dout){
for (i=0;i<24;i++){
ADC_bit=ADC_bit<1;
ADC_bit=dout;
output_high (clk
);delay_ms (1);
output_low(clk);
delay_ms(1);
}
返回
(ADC_bit);
}


void adc_read(){//这用于SPI读取
int i;byte0 = 0;byte1 = 0;byte2 = 0;

for (i=0;i<24;i+){
output_low(clk);delay_te0=0; spi_te0=0;

读spi (by1;
byte2 = SPI_READ(0);
//byte3 = SPI_READ(0);
//delay_ms(2);
output_high (clk);
output_low (clk);
output_high (clk);
delay_us(500);
}
deger=make32(Byte0,byte1,byte3);
byte0 = 0;
byte1 = 0;
字节2 = 0;
}//!


void Yaz (Int32 Val,INT8 &a,INT8 &b,INT8 &c,INT8 &d,INT8 &e,INT8 &f)
{ a=0;b=0;c=0;d=0;e=0;f=0;
while (val>=10万){val-=10万,A+;}
while (val>=1万){val-=1万,b++;}
while (val>=1000){val-=1000,c++;}
while (val>=100){val-=100,d++;}
while (val>=10){val-=10,e++;}
while (val>=1){val-=1,f++;}
write7219(6,a);
write7219(5,b);
write7219(4,c);
write7219(3,d);
write7219(2,e);
write7219(1,f);

}

void main()
{
//setup_SPI(SPI_MASTER | SPI_MODE_3| SPI_CLK_DIV_4);
init7219();
对于(i=0;i<10;i++){write7219 (1,i);write7219 (2,i);write7219 (3,i);write7219 (4,i);
write7219 (5,i);write7219 (6,i);write7219 (7,i);output_high (蜂鸣器);delay_ms (100);
OUTPT_LOW (蜂鸣器);}
output_low (pwd);delay_ms (10);output_high (pwd);
while (true)
{
DEGER=Oku();
IF (输入(零)){while (输入(零));DEGER=0;OUTPUT_HIGH (蜂鸣器);DELAY _ms (50);OUTPUT_LOW (蜂鸣器);}
Yaz (deger,a,b,c,d,e,f);
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,用户486.4313万,

    欢迎参加论坛!  我对代码有点困惑。  您似乎同时具有位冲击方案和SPI外设代码。  此外,始终很难遵循其他人的代码并找出数据似乎不正确的原因。

    我建议您抓住示波器或逻辑分析仪,以确定您是否正确通信。  如果您检查ADS1232引脚以确保每个器件引脚配置正确且没有任何引脚浮动,则调试也很好。  因此,我建议您采取小步骤,验证设备是否正在运行,以及您的代码是否正在执行您认为它正在执行的操作。

    此致,

    Bob B

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,谢谢您的回复,  

    我发现了我的错误。 我忘记了Vdd引脚连接,ı 可以从ads1232读取数据。