下面给出的是LPC2138与MAX1247通过SPI串口进行数据传输的代码:
uint16 SPI_Data(uint8 data) //该函数的参数是LPC2138向MAX1247写如的控制字
{ uint8 a,b,c;
uint16 d;
IO0CLR = MAX1247_CS; // 片选MAX1247
S0SPDR = data; //启动SPI传输
while( 0 == (S0SPSR & 0x80)); // 等待SPIF置位,即等待数据发送完毕
{
a=S0SPDR;
}
S0SPDR = 0x00;
while( 0 == (S0SPSR & 0x80)); // 等待SPIF置位,即等待数据发送完毕
{
b=S0SPDR;
}
S0SPDR = 0x00;
while( 0 == (S0SPSR & 0x80)); // 等待SPIF置位,即等待数据发送完毕
{
c=S0SPDR;
}
IO0SET = MAX1247_CS;
d=(b<<9)|(c<<1) ;
return d;
}
该代码是在LPC2138和MAX1247的数据采样电路中测试通过了的.