931
#include "main.h" /* USER CODE BEGIN PV */ char str0[50] = "USART Polling Mode \n\r"; char str1[50] = "USART Interrupt Mode \n\r"; char str2[50] = "USART DMA Mode \n\r"; /* USER CODE END PV */ /* USER CODE BEGIN 0 */ void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) { if (huart == &huart1) { HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14, 0); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_15, 1); } if (huart == &huart2) { HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14, 1); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_15, 0); } } /* USER CODE END 0 */ int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_DMA_Init(); MX_USART1_UART_Init(); MX_USART2_UART_Init(); while (1) { if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_0)==GPIO_PIN_SET) //Polling Mode { HAL_UART_Transmit(&huart1, (uint8_t*)str0, sizeof(str0),100); HAL_Delay(200); } else if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_1)==GPIO_PIN_SET) //Interrupt Mode { HAL_UART_Transmit_IT(&huart1,(uint8_t*)str1, sizeof(str1)); HAL_Delay(200); } else if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_2)==GPIO_PIN_SET) //DMA Mode { HAL_UART_Transmit_DMA(&huart2,(uint8_t*)str2, sizeof(str2)); HAL_Delay(200); } else { HAL_UART_Abort(&huart1); HAL_UART_Abort(&huart2); } } /* USER CODE END 3 */ }