uint8 SPI_Read_752(uint8 reg,uint8 channel) //reg为寄存器地址,channel为通道号 {
uint8 Comm752[1],receive_buf[8];
uint8 readdata;
reg=(reg<<3)|0x80; //0x80,是否就是读命令?
if(channel==2) reg=reg|0x02; //加入通道号
Comm752[0]=reg;
IO0CLR |= 1<<12; //片选激活
SPI_Send_752(Comm752,1); //发送命令字
SPI_Read(receive_buf,1); //读取数据
readdata=receive_buf[0];
IO0SET |= 1<<12; //片选关闭
return readdata; //返回数据
}
///////////////////////////////////////////////////////////////////////////////////
void SPI_Read(uint8 *p,uint8 num)
{
uint8 i;
for(i=0;i<num;i++)
{
SPI_Send(0xff,1); //发送空数据
while(0==(S0PTSR&0X80)); //等待发送完成
*p = S0PDR;
}
}
现在发送数据没有什么问题,但是接收数据不对,请高手指点啊,MCU用得是LPC2119 |