From df737bb92e7ff5f5c7495c06d0e231338805a86c Mon Sep 17 00:00:00 2001
From: guanjiao <sqrgj@163.com>
Date: 星期三, 16 五月 2018 23:19:20 +0800
Subject: [PATCH] 从工程中删除platform中相关文件

---
 源码/核心板/Src/OnChipDevices/Spi.c |  104 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 104 insertions(+), 0 deletions(-)

diff --git "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/OnChipDevices/Spi.c" "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/OnChipDevices/Spi.c"
index 04ee781..c2e4ab4 100644
--- "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/OnChipDevices/Spi.c"
+++ "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/OnChipDevices/Spi.c"
@@ -71,3 +71,107 @@
     /* Write to SPIx CR1 */
     SPIx->CR1 = tmpreg;
 }
+
+/*! ------------------------------------------------------------------------------------------------------------------
+ * Function: writetospi()
+ *
+ * Low level abstract function to write to the SPI
+ * Takes two separate byte buffers for write header and write data
+ * returns 0 for success, or -1 for error
+ */
+int writetospi_serial
+(
+    uint16_t       headerLength,
+    const uint8_t *headerBuffer,
+    uint32_t       bodylength,
+    const uint8_t *bodyBuffer
+)
+{
+
+    int i = 0;
+
+    decaIrqStatus_t  stat ;
+
+    stat = decamutexon() ;
+
+    SPIx_CS_GPIO->BRR = SPIx_CS;
+
+    for(i = 0; i < headerLength; i++)
+    {
+        SPIx->DR = headerBuffer[i];
+
+        while ((SPIx->SR & SPI_I2S_FLAG_RXNE) == (uint16_t)RESET);
+
+        SPIx->DR ;
+    }
+
+    for(i = 0; i < bodylength; i++)
+    {
+        SPIx->DR = bodyBuffer[i];
+
+        while((SPIx->SR & SPI_I2S_FLAG_RXNE) == (uint16_t)RESET);
+
+        SPIx->DR ;
+    }
+
+    SPIx_CS_GPIO->BSRR = SPIx_CS;
+
+    decamutexoff(stat) ;
+
+    return 0;
+} // end writetospi()
+
+
+/*! ------------------------------------------------------------------------------------------------------------------
+ * Function: readfromspi()
+ *
+ * Low level abstract function to read from the SPI
+ * Takes two separate byte buffers for write header and read data
+ * returns the offset into read buffer where first byte of read data may be found,
+ * or returns -1 if there was an error
+ */
+int readfromspi_serial
+(
+    uint16_t       headerLength,
+    const uint8_t *headerBuffer,
+    uint32_t       readlength,
+    uint8_t       *readBuffer
+)
+{
+
+    int i = 0;
+
+    decaIrqStatus_t  stat ;
+
+    stat = decamutexon() ;
+
+    /* Wait for SPIx Tx buffer empty */
+    //while (port_SPIx_busy_sending());
+
+    SPIx_CS_GPIO->BRR = SPIx_CS;
+
+    for(i = 0; i < headerLength; i++)
+    {
+        SPIx->DR = headerBuffer[i];
+
+        while((SPIx->SR & SPI_I2S_FLAG_RXNE) == (uint16_t)RESET);
+
+        readBuffer[0] = SPIx->DR ; // Dummy read as we write the header
+    }
+
+    for(i = 0; i < readlength; i++)
+    {
+        SPIx->DR = 0;  // Dummy write as we read the message body
+
+        while((SPIx->SR & SPI_I2S_FLAG_RXNE) == (uint16_t)RESET);
+
+        readBuffer[i] = SPIx->DR ;//port_SPIx_receive_data(); //this clears RXNE bit
+    }
+
+    SPIx_CS_GPIO->BSRR = SPIx_CS;
+
+    decamutexoff(stat) ;
+
+    return 0;
+} // end readfromspi()
+

--
Gitblit v1.9.3