WXK
2023-10-12 c3d98bdc3ab2e777007a0d33597f01a36433c65f
Src/OnChipDevices/Spi.c
@@ -46,26 +46,23 @@
    SPIx_CS_GPIO->BRR = SPIx_CS;
//   delay_ms(1);
   tt=HAL_SPI_Transmit(&hspi1,headerBuffer,headerLength,10);
   tt=HAL_SPI_Transmit(&hspi1,bodyBuffer,bodylength,10);
//   tt=HAL_SPI_Transmit(&hspi1,headerBuffer,headerLength,10);
//   tt=HAL_SPI_Transmit(&hspi1,bodyBuffer,bodylength,10);
//      delay_ms(1);
//    for(i = 0; i < headerLength; i++)
//    {
//        SPIx->DR = headerBuffer[i];
    for(i = 0; i < headerLength; i++)
    {
            SPIx->DR= headerBuffer[i];
        while ((SPIx->SR & SPI_FLAG_RXNE) == (uint16_t)RESET);
        SPIx->DR;
//        while ((SPIx->SR & SPI_FLAG_RXNE) == (uint16_t)RESET);
    }
//        SPIx->DR ;
//    }
//    for(i = 0; i < bodylength; i++)
//    {
//        SPIx->DR = bodyBuffer[i];
//        while((SPIx->SR & SPI_FLAG_RXNE) == (uint16_t)RESET);
//        SPIx->DR ;
//    }
    for(i = 0; i < bodylength; i++)
    {
        SPIx->DR = bodyBuffer[i];
           while ((SPIx->SR & SPI_FLAG_RXNE) == (uint16_t)RESET);
        SPIx->DR ;
    }
    SPIx_CS_GPIO->BSRR = SPIx_CS;
@@ -102,25 +99,25 @@
    //while (port_SPIx_busy_sending());
    SPIx_CS_GPIO->BRR = SPIx_CS;
   HAL_SPI_Transmit(&hspi1,headerBuffer,headerLength,10);
   HAL_SPI_Receive(&hspi1,readBuffer,readlength,10);
//    for(i = 0; i < headerLength; i++)
//    {
//        SPIx->DR = headerBuffer[i];
//   HAL_SPI_Transmit(&hspi1,headerBuffer,headerLength,10);
//   HAL_SPI_Receive(&hspi1,readBuffer,readlength,10);
    for(i = 0; i < headerLength; i++)
    {
        SPIx->DR = headerBuffer[i];
//        while((SPIx->SR & SPI_FLAG_RXNE) == (uint16_t)RESET);
        while((SPIx->SR & SPI_FLAG_RXNE) == (uint16_t)RESET);
//        readBuffer[0] = SPIx->DR ; // Dummy read as we write the header
//    }
        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
    for(i = 0; i < readlength; i++)
    {
        SPIx->DR = 0;  // Dummy write as we read the message body
//        while((SPIx->SR & SPI_FLAG_RXNE) == (uint16_t)RESET);
        while((SPIx->SR & SPI_FLAG_RXNE) == (uint16_t)RESET);
//        readBuffer[i] = SPIx->DR ;//port_SPIx_receive_data(); //this clears RXNE bit
//    }
        readBuffer[i] = SPIx->DR ;//port_SPIx_receive_data(); //this clears RXNE bit
    }
    SPIx_CS_GPIO->BSRR = SPIx_CS;