|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 djqlyy 于 2015-3-4 13:44 编辑
给出的SPI文档中有一个函数:SF_write_status_register (XPAR_SPI_0_BASEADDR, 0x1c);
这个函数的实现中的spi_transfer 函数没看懂,发送完数据后读数据,并判断发送的数据数与读的数据数,不一样或者发送数据为0
都显示错误信息!!!!!
不一样或者发送数据为0 都显示错误信息!!!!!什么意思没明白
(Xuint32 BaseAddress, Xuint8 *send, Xuint8 *recv, Xuint8 num_bytes)
{
Xuint8 NumBytesRcvd = 0;
Xuint8 NumBytesSent = 0;
while(num_bytes--)
{
XSpi_WriteReg(BaseAddress, XSP_DTR_OFFSET, *send++);
NumBytesSent++;
}
XSpi_Clear_Inhibit(BaseAddress);
while (!(XSpi_ReadReg(BaseAddress, XSP_SR_OFFSET) & XSP_SR_TX_EMPTY_MASK));
while ((XSpi_ReadReg(BaseAddress, XSP_SR_OFFSET) & XSP_SR_RX_EMPTY_MASK) == 0)
{
*recv++ = XSpi_ReadReg(BaseAddress,XSP_DRR_OFFSET);
NumBytesRcvd++;
}
if ((NumBytesSent != NumBytesRcvd) || (NumBytesSent == 0))
{
print("SPI XFER ERROR\r\n");
}
} |
|