From f1898e778e2a3a916140b3c783ce6ec472c1d115 Mon Sep 17 00:00:00 2001 From: maakshishov Date: Tue, 1 Feb 2022 21:34:12 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B0=D1=87=D0=B0=D0=BB=20=D1=83=D0=B1?= =?UTF-8?q?=D0=B8=D1=80=D0=B0=D1=82=D1=8C=20HAL-=D1=84=D1=83=D0=BD=D0=BA?= =?UTF-8?q?=D1=86=D0=B8=D0=B8.=20=D0=A3=D0=B1=D1=80=D0=B0=D0=BB=20=D0=BA?= =?UTF-8?q?=D0=BE=D1=81=D1=8F=D0=BA=20=D1=81=20UART?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Core/Src/main.c | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/Core/Src/main.c b/Core/Src/main.c index 0411f37..8a75d2c 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -29,14 +29,24 @@ /* Private typedef -----------------------------------------------------------*/ /* USER CODE BEGIN PTD */ -#define CS1_OFF() HAL_GPIO_WritePin(CS1_GPIO_Port, CS1_Pin, GPIO_PIN_SET) -#define CS1_ON() HAL_GPIO_WritePin(CS1_GPIO_Port, CS1_Pin, GPIO_PIN_RESET) -#define CS2_OFF() HAL_GPIO_WritePin(CS2_GPIO_Port, CS2_Pin, GPIO_PIN_SET) -#define CS2_ON() HAL_GPIO_WritePin(CS2_GPIO_Port, CS2_Pin, GPIO_PIN_RESET) -#define CS3_OFF() HAL_GPIO_WritePin(CS3_GPIO_Port, CS3_Pin, GPIO_PIN_SET) -#define CS3_ON() HAL_GPIO_WritePin(CS3_GPIO_Port, CS3_Pin, GPIO_PIN_RESET) -#define RESET_ON() HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_SET) -#define RESET_OFF() HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_RESET) +void GPIO_Set(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) +{ + GPIOx->BSRR = (uint32_t)GPIO_Pin; +} + +void GPIO_Reset(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) +{ + GPIOx->BRR = (uint32_t)GPIO_Pin; +} + +#define CS1_OFF() GPIO_Set(CS1_GPIO_Port, CS1_Pin) +#define CS1_ON() GPIO_Reset(CS1_GPIO_Port, CS1_Pin) +#define CS2_OFF() GPIO_Set(CS2_GPIO_Port, CS2_Pin) +#define CS2_ON() GPIO_Reset(CS2_GPIO_Port, CS2_Pin) +#define CS3_OFF() GPIO_Set(CS3_GPIO_Port, CS3_Pin) +#define CS3_ON() GPIO_Reset(CS3_GPIO_Port, CS3_Pin) +#define RESET_ON() GPIO_Set(RESET_GPIO_Port, RESET_Pin) +#define RESET_OFF() GPIO_Reset(RESET_GPIO_Port, RESET_Pin) /* USER CODE END PTD */ /* Private define ------------------------------------------------------------*/ @@ -121,17 +131,17 @@ int main(void) while (1) { CS1_ON(); - res = HAL_SPI_TransmitReceive_IT(&hspi1, data_in, 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); - 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])); 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])); while(!flag_receive && res == 0) ; @@ -144,8 +154,7 @@ int main(void) if(res == 0) { - 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])); + res = 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); while(flag_transmit); flag_transmit = 1; HAL_UART_Transmit_DMA(&huart1, (uint8_t*)str, res); @@ -333,16 +342,12 @@ static void MX_GPIO_Init(void) /* USER CODE BEGIN 4 */ void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi) { - - flag_receive = 1; - + flag_receive = 1; } void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) { - - flag_transmit = 0; - + flag_transmit = 0; } /* USER CODE END 4 */