Browse Source

add: spi收发错误时应该返回0字节长度

chenxuuu 2 years ago
parent
commit
f008dd1b69
1 changed files with 9 additions and 4 deletions
  1. 9 4
      application/src/luat_spi_air105.c

+ 9 - 4
application/src/luat_spi_air105.c

@@ -183,10 +183,13 @@ int luat_spi_transfer(int spi_id, const char* send_buf, size_t send_length, char
     // LLOGD("SPI_MasterInit luat_spi%d:%d send_buf:%x recv_buf:%x length:%d ",spi_id,luat_spi[spi_id], *send_buf, *recv_buf, length);
     // while(luat_spi[spi_id].mark)
 //    luat_spi[spi_id].mark = 1;
+    int32_t result = 0;
     if(luat_spi[spi_id].mode==0)
-        SPI_FlashBlockTransfer(luat_spi[spi_id].id, send_buf, send_length, recv_buf, recv_length);
+        result = SPI_FlashBlockTransfer(luat_spi[spi_id].id, send_buf, send_length, recv_buf, recv_length);
     else
-    	SPI_BlockTransfer(luat_spi[spi_id].id, send_buf, recv_buf, recv_length);
+        result = SPI_BlockTransfer(luat_spi[spi_id].id, send_buf, recv_buf, recv_length);
+    if(result)
+        return 0;
     return recv_length;
 }
 //收SPI数据,返回接收字节数
@@ -194,7 +197,8 @@ int luat_spi_recv(int spi_id, char* recv_buf, size_t length) {
     // LLOGD("SPI_MasterInit luat_spi%d:%d recv_buf:%x length:%d ",spi_id,luat_spi[spi_id], *recv_buf, length);
     // while(luat_spi[spi_id].mark)
 //    luat_spi[spi_id].mark = 1;
-    SPI_BlockTransfer(luat_spi[spi_id].id, recv_buf, recv_buf, length);
+    if(SPI_BlockTransfer(luat_spi[spi_id].id, recv_buf, recv_buf, length))
+        return 0;
     return length;
 }
 //发SPI数据,返回发送字节数
@@ -202,7 +206,8 @@ int luat_spi_send(int spi_id, const char* send_buf, size_t length) {
     // LLOGD("luat_spi_send luat_spi%d:%d send_buf:%x length:%d ",spi_id,luat_spi[spi_id], *send_buf, length);
     // while(luat_spi[spi_id].mark)
 //    luat_spi[spi_id].mark = 1;
-    SPI_BlockTransfer(luat_spi[spi_id].id, send_buf, NULL, length);
+    if(SPI_BlockTransfer(luat_spi[spi_id].id, send_buf, NULL, length))
+        return 0;
     return length;
 }