这是用AVR的SPI接口进行发送和接收的函数
unsigned char mmcSendByte(unsigned char data)
{
unsigned char tmp;
SPDR = data;//把发送的数据放入SPI发送缓冲寄存器中
while( !(SPSR & (1 << SPIF)) ); //等待发送完成标志SPIF置1,置1表示发送完成
tmp = SPDR;//SPI是双向通讯,发送完成后,从机要发送的数据会存入SPDR中
return tmp;//返回值是接收到的从机发送的数据
}
while( !(SPSR & (1 << SPIF)) ); 这条语句不好理解,在AVR的H文件中有定义,SPIF就是0-7数字中的一个,SPIF是SPSR寄存器中的一位,假设SPIF为2,那么上述语句就while(!(SPSR&0X02))
|