diff --git a/Core/Src/main.c b/Core/Src/main.c index 0ffeeea..eb8f4e2 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -70,7 +70,7 @@ static void MX_USART1_UART_Init(void); /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ -uint8_t data_out[6] = {0}; +uint8_t data_out[18] = {0}; uint8_t flag_receive = 0; uint8_t flag_cs = 0; /* USER CODE END 0 */ @@ -119,7 +119,7 @@ int main(void) { flag_cs = 1; CS1_ON(); - res = HAL_SPI_TransmitReceive_IT(&hspi1, (uint8_t*) (data_in), (uint8_t *) (data_out), sizeof(data_in) / sizeof(data_in[0])); + res = HAL_SPI_TransmitReceive_IT(&hspi1, data_in, data_out, sizeof(data_in) / sizeof(data_in[0])); while(!flag_receive && res == 0) { HAL_Delay(1); } @@ -127,7 +127,7 @@ int main(void) flag_receive = 0; flag_cs = 2; CS2_ON(); - res = HAL_SPI_TransmitReceive_IT(&hspi1, (uint8_t*) (data_in), (uint8_t *) (data_out), sizeof(data_in) / sizeof(data_in[0])); + res = HAL_SPI_TransmitReceive_IT(&hspi1, data_in, &data_out[6], sizeof(data_in) / sizeof(data_in[0])); while(!flag_receive && res == 0) { HAL_Delay(1); } @@ -135,12 +135,27 @@ int main(void) flag_receive = 0; flag_cs = 3; CS3_ON(); - res = HAL_SPI_TransmitReceive_IT(&hspi1, (uint8_t*) (data_in), (uint8_t *) (data_out), sizeof(data_in) / sizeof(data_in[0])); + res = HAL_SPI_TransmitReceive_IT(&hspi1, data_in, &data_out[12], sizeof(data_in) / sizeof(data_in[0])); while(!flag_receive && res == 0) { HAL_Delay(1); } CS3_OFF(); flag_receive = 0; + + struct sData data[3]; + int8_t res = status_mes(&data_out[0], 6u, &data[0]); + res += status_mes(&data_out[6], 6u, &data[1]); + res += status_mes(&data_out[12], 6u, &data[2]); + if(res == 0) + { + char str[19]; + memset(str, 0, sizeof(str)); + sprintf (str, "%i;%i;%i;%i;%i;%i\r\n", data[0].rate, data[1].rate, data[2].rate, data[0].temp, data[1].temp, data[2].temp); + res = HAL_UART_Transmit_DMA(&huart1, (uint8_t*)str, sizeof(str) / sizeof(str[0])); + while(!flag_receive && res == 0) { + HAL_Delay(1); + } + } /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ @@ -319,21 +334,14 @@ static void MX_GPIO_Init(void) /* USER CODE BEGIN 4 */ void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi) { - struct sData data; if(hspi == &hspi1) { - int8_t res = status_mes(data_out, sizeof(data_out) / sizeof(data_out[0]), &data); - if(res == 0) - { - char str[41]; - memset(str, 0, sizeof(str)); - sprintf (str, "Gyro%u! Temp = %i; Rate = %i\r\n", flag_cs, data.temp, data.rate); - res = HAL_UART_Transmit_DMA(&huart1, (uint8_t*)str, sizeof(str) / sizeof(str[0])); - } + flag_receive = 1; } } -void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) { +void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) +{ if(huart == &huart1) { flag_receive = 1;