纠结几天的AD还是调不出来,,一开始基准电源接反了。。后来改过来了。。还是调不出来。希望有了解此芯片的给解答下
采用SPI接口
write_3548(0xa000);
Delay_ms(1);
write_3548(0xa800);
while(1)
{
Delay_ms(1);
for(i=0;i<16;i++)
{
write_3548(0x5000);
Delay_ms(10);
result[i]=read_3548();
}
}
子程序:
void write_3548(unsigned int cmd)
{
TLC3548_CS_L;
delay_us(100);
SpiB0_WriteData(cmd>>8);
SpiB0_WriteData(0xFF&cmd);
delay_us(100);
TLC3548_CS_H;
}
unsigned int read_3548(void)
{
unsigned char h=0,l=0;
unsigned int advalue;
TLC3548_CS_L;
delay_us(100);
h=SpiB0_WriteData(0x70);
l=SpiB0_WriteData(0x00); //继续发送数据,增加时钟,收取正确的数据
delay_us(100);
TLC3548_CS_H;
advalue=((unsigned int)h<<8)|l;
advalue=advalue>>2;
return advalue;
}
能收到数据,但是不对。