diff --git a/Core/Src/main.c b/Core/Src/main.c index 76671d9..ac66c69 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -134,20 +134,30 @@ int main(void) if(res != 0) return res; while (1) { + while(!flag_transmit); CS1_ON(); - res = HAL_SPI_TransmitReceive_IT(&hspi1, data_in, data_out, sizeof(data_in) / sizeof(data_in[0])); + hspi1.Instance->DR = data_in[0]; // output something on MOSI while reading MISO + while ((hspi1.Instance->SR & SPI_FLAG_RXNE) == 0){} //Wait for Data Ready to Read + data_out[0] = hspi1.Instance->DR; + //res = HAL_SPI_TransmitReceive_IT(&hspi1, data_in, data_out, sizeof(data_in) / sizeof(data_in[0])); while(!flag_receive && res == 0); CS1_OFF(); flag_receive = 0; CS2_ON(); - res = HAL_SPI_TransmitReceive_IT(&hspi1, data_in, &data_out[6], sizeof(data_in) / sizeof(data_in[0])); + hspi1.Instance->DR = data_in[0]; // output something on MOSI while reading MISO + while ((hspi1.Instance->SR & SPI_FLAG_RXNE) == 0){} //Wait for Data Ready to Read + data_out[0] = hspi1.Instance->DR; + //res = HAL_SPI_TransmitReceive_IT(&hspi1, data_in, &data_out[6], sizeof(data_in) / sizeof(data_in[0])); while(!flag_receive && res == 0); CS2_OFF(); flag_receive = 0; CS3_ON(); - res = HAL_SPI_TransmitReceive_IT(&hspi1, data_in, &data_out[12], sizeof(data_in) / sizeof(data_in[0])); + hspi1.Instance->DR = data_in[0]; // output something on MOSI while reading MISO + while ((hspi1.Instance->SR & SPI_FLAG_RXNE) == 0){} //Wait for Data Ready to Read + data_out[0] = hspi1.Instance->DR; + //res = HAL_SPI_TransmitReceive_IT(&hspi1, data_in, &data_out[12], sizeof(data_in) / sizeof(data_in[0])); while(!flag_receive && res == 0) ; CS3_OFF(); flag_receive = 0;