///'#include ///'stm32f4xx_hal.h///'//n//nUART_HandleTypeDef huart2;//n//nvoid SystemClock_Config(void);//nvoid Error_Handler(void);//n//nint main(void)//n{//n HAL_Init();//n SystemClock_Config();//n//n // 初始化串口2//n huart2.Instance = USART2;//n huart2.Init.BaudRate = 115200;//n huart2.Init.WordLength = UART_WORDLENGTH_8B;//n huart2.Init.StopBits = UART_STOPBITS_1;//n huart2.Init.Parity = UART_PARITY_NONE;//n huart2.Init.Mode = UART_MODE_TX;//n huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;//n huart2.Init.OverSampling = UART_OVERSAMPLING_16;//n if (HAL_UART_Init(&huart2) != HAL_OK)//n {//n Error_Handler();//n }//n//n // 发送数据//n uint8_t data[] = ///'Hello, World!///' ;//n if (HAL_UART_Transmit(&huart2, data, sizeof(data), HAL_MAX_DELAY) != HAL_OK)//n {//n Error_Handler();//n }//n//n // 检测发送状态//n HAL_UART_StateTypeDef state;//n state = HAL_UART_GetState(&huart2);//n switch (state)//n {//n case HAL_UART_STATE_READY://n // 串口准备好了,可以发送下一帧数据//n break;//n case HAL_UART_STATE_BUSY://n case HAL_UART_STATE_BUSY_TX://n // 串口忙,等待串口发送完成//n while (state != HAL_UART_STATE_READY)//n {//n state = HAL_UART_GetState(&huart2);//n }//n break;//n case HAL_UART_STATE_BUSY_RX://n case HAL_UART_STATE_BUSY_TX_RX://n // 串口同时在接收和发送数据,等待串口发送完成//n while (state != HAL_UART_STATE_READY && state != HAL_UART_STATE_BUSY_RX)//n {//n state = HAL_UART_GetState(&huart2);//n }//n break;//n default://n // 发生错误//n Error_Handler();//n break;//n }//n//n while (1)//n {//n }//n}//n//nvoid SystemClock_Config(void)//n{//n RCC_OscInitTypeDef RCC_OscInitStruct = {0};//n RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};//n//n /** Configure the main internal regulator output voltage //n ///n __HAL_RCC_PWR_CLK_ENABLE();//n __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);//n /* Initializes the CPU, AHB and APB busses clocks //n ///n RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;//n RCC_OscInitStruct.HSIState = RCC_HSI_ON;//n RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;//n RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;//n RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;//n RCC_OscInitStruct.PLL.PLLM = 8;//n RCC_OscInitStruct.PLL.PLLN = 168;//n RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;//n RCC_OscInitStruct.PLL.PLLQ = 4;//n if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)//n {//n Error_Handler();//n }//n /* Initializes the CPU, AHB and APB busses clocks //n *///n RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK//n | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;//n RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;//n RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;//n RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;//n RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;//n//n if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)//n {//n Error_Handler();//n }//n}//n//nvoid Error_Handler(void)//n{//n while (1)//n {//n }//n}//n//n#ifdef USE_FULL_ASSERT//nvoid assert_failed(uint8_t *file, uint32_t line)//n{ //n}//n#endif//n/

STM32 HAL库:HAL_UART_Transmit后如何检测串口发送状态?代码示例

原文地址: https://www.cveoy.top/t/topic/pEW8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录