您好,我采用的是ADS1118采集外部传感器的数据给MCU,MCU是STM32,请给我一个ADS1118这个IC的初始化代码,谢谢
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.
您好,我采用的是ADS1118采集外部传感器的数据给MCU,MCU是STM32,请给我一个ADS1118这个IC的初始化代码,谢谢
您好,您刚我把那个程序贴出来我看一下 可以把 ,我的电脑上完全打不开,电脑限制装软件,谢谢
您好,我在网上找了一个程序修改了一下,用printf函数打印到串口上,数据一直是0,不知道什么原因,麻烦看一下,谢谢
void ADS1118_ADS_Config(unsigned int temp_config_value)
{
unsigned int Config_Value;
Config_Value = temp_config_value;
CS_L; // Set CS low
delay_us(1600); // Wait for slave to initialize
ADS1118_WriteSPI(Config_Value,1);
delay_us(1600); // Wait for slave to initialize
CS_H; // Set CS high
}
/*ת»»(дÈëconfig¼Ä´æÆ÷)*/
void ADS1118_WriteSPI(uint config,unsigned char mode)
{
uint temp;
uchar bit_ctr;
CS_L;
// MOSI_L;//DINÀµÍ,µ½clkΪ¸ß(µÍ)ʱÊäÈë
if(mode==1)temp = config | 0x8000;//mode==1,¶ÁÊý¾Ý²¢¿ªÊ¼Ï´Îת»»(OSλÖøß)
// __delay_cycles(20);//µÈ´ýOSÖøߺóÊý¾ÝµÄת»»(860sps)
// temp &=0x7FFF;//OSÖÃ0ת»»Íê³É
for(bit_ctr=0;bit_ctr<16;bit_ctr++) // 16λÅäÖÃÈëconfig,DINºó¿ªÊ¼×ª»»
{
SCLK_L; // ..then set SCK low again
delay_us(50);
if(temp&0x8000)
MOSI_H;
else
MOSI_L;
SCLK_H; // Set SCK high..
delay_us(50);
temp = (temp << 1);
// if(MISO) temp++;
}
SCLK_L;
delay_us(200);
CS_H;
delay_us(200);
}
/*½«Êý¾Ý¶Á³ö£¨DOUT)*/
uint ADS1118_ADS_Read(void)
{
unsigned int Data=0;
int i;
int a[16];
uint Config_Value;
ADS1118_WriteSPI(0x75EA,1);
CS_H;//????
delay_us(200);//ÑÓʱµÈ´ý
CS_L;
delay_us(1600);
SCLK_H;
if(!MISO)
{//Èç¹ûDRDYΪµÍ,ת»»Íê³É,Ôò¿ªÊ¼¶ÁÈ¡
for(i=0;i<16;i++)
{
SCLK_L;
delay_us(50);//clk¸ßÑÓʱ
if(MISO) a[i]=1;
else a[i]=0;
SCLK_H;
delay_us(50);//clkµÍÑÓʱ
Data=Data*2+a[i];
}
}
delay_us(1600);
CS_H;
return Data;
}
主函数main中是这样的
u8 value;
u8 Volt_Value;
delay_init(72); //ÑÓʱ³õʼ»¯
NVIC_Configuration();
uart_init(9600);
SPIx_Init();
SPIx_SetSpeed(8);
ADS1118_ADS_Config(0x85eb);
while(1)
{
delay_ms(800);
value = ADS1118_ADS_Read(); //0.512V
printf("value = %d\n\r",value);
Volt_Value = value*0.512/32768;
printf("Volt_Value %f\n\r\n\r",Volt_Value);
}