在SD卡的读写中用到SPI_WriteByte(0xff),其中0xff为什么就是表示正在读取数据呢?

下面是SPI_WriteByte的函数形式:unsignedcharSPI_WriteByte(unsignedcharval){SPI2BUF=val;//发送数据wh... 下面是SPI_WriteByte的函数形式:
unsigned char SPI_WriteByte(unsigned char val)
{
SPI2BUF = val; //发送数据
while(!IFS2bits.SPI2IF); //等待发送完成
IFS2bits.SPI2IF = 0; //清除标志位
return SPI2BUF; //读取接收寄存器
}
函数在这里有调用:
while(SPI_WriteByte(0xff)!= 0xfe) //等待接收到开始字节

for(i=0; i<=255; i++) //读255个数据
{
SDTest[i]= SPI_WriteByte(0xff); //读取接收到的数据

}
搞不懂for循环里面的函数意义,希望大家指点!
展开
 我来答
小螺号瞎吹
2020-03-20
知道答主
回答量:1
采纳率:0%
帮助的人:639
展开全部
因为SPI的时钟是来自于主设备,而且SPI是收发双向的。发送0XFF,就是为了在接受数据的时候,给从设备提供8个时钟,这样,从设备才能够发出信息给主设备。至于主设备发0XFF,还是别的信息,都无所谓,只要不是从设备的命令就行。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式