赞
踩
- uint8_t g_usart1_rx_flag = 0; /* 串口接收到数据标志 */
- /* 串口数据接收完成回调函数 */
- void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
- {
- if(huart->Instance == USART1)//首先判断是不是串口1
- {
- g_usart1_rx_flag = 1;//串口接受标志置为1,表示接收完成
- }
- }
- while(1)
- {
- if(g_usart1_rx_flag == 1)
- {
- printf("您输入的字符为:\r\n");
- HAL_UART_Transmit(&g_uart1_handle, (uint8_t*)g_rx_buffer, 1, 1000);
- //其实这里本来就是一个阻塞发送的函数,没有必要判断是否发送完成,如果使用的是IT函数才有必要判断
- //例如: HAL_UART_Transmit_IT(&g_uart1_handle, (uint8_t*)g_rx_buffer, 1);这个函数才有
- //判断的必要
-
- while(__HAL_UART_GET_FLAG(&g_uart1_handle, UART_FLAG_TC) != 1);
- printf("\r\n");
- g_usart1_rx_flag = 0;
- }
- else
- {
- delay_ms(10);
- }
- }
-
特别注意的就是这个:
当字符串从stm32发送出去以后是需要时间的。所以需要判断是不是发送完了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。