25# NE5532
你好,我用430作为主机,51单片机作为从机,写了一个主机程序和一个从机程序,主机发送数据,从机接收,并把接收到的数据发回主机。
主机上升沿发送,下降沿接收,相应的从机上升沿接收,下降沿发送。
但主机接收到的数据与主机发送的数据不一致。发送00回读到的是FF,发送FF回读到的是00,发送其他的就乱了。
从机我接收部分是这样写的
unsigned char ReceiveByte(void)
{
unsigned char i,tempbit,tempData;
for(i=8;i>0;i--)
{
if(MOSI ==1)//判断收到的电平信号
{
tempbit = 1;
}
else
tempbit = 0;
while(SCLK==0);//这里是否有问题
tempData = ((tempData<<1)|tempbit);//数据读出操作
}
SCLK是时钟线,从机只需要等待判断就行了吗?
|