因为硬件的限制 SPI 只有三根线(cs clk sdi)
unsigned int spi_read_24date(unsigned char reg)
{
char i;
unsigned int buff=0;
set_spi_cs(0);
udelay(200);
set_spi_clk(0);
set_spi_sdi(0);
set_spi_clk(1);
udelay(100);
for(i=0; i < 8; i++)
{
set_spi_clk(0);
udelay(200);
if(reg & 0x80)
set_spi_sdi(1);
else
set_spi_sdi(0);
udelay(100);
set_spi_clk(1);
udelay(200);
reg <<= 1;
}
spi_sdi_set_input(1);//把sdi口设置为input
udelay(200);
set_spi_clk(0);
udelay(300);
set_spi_clk(1);
udelay(200);
for(i=0; i < 24; i++)
{
set_spi_clk(0);
udelay(200);
if(spi_sdi_get_input(1))
buff |= 0x800000 >> i;
udelay(100