请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号: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);
}