每次复位后发现接收的第一个字节总是丢失,但后面的缺没问题。例如发送数据123,接收的缓冲数据长度是2 ,第一个数是2而不是1,如下图。后续再发就没有问题,如下图 void LPUART1_IRQHandler(void) { / USER CODE BEGIN LPUART1_IRQn 0 / / USER CODE BEGIN USART1_IRQn 0 / / USER CODE END USART1_IRQn 1 / / USER CODE END LPUART1_IRQn 0 / HAL_UART_IRQHandler(&hlpuart1); / USER CODE BEGIN LPUART1_IRQn 1 / if(rx_len>0)// { __HAL_UART_ENABLE_IT(&hlpuart1,UART_IT_IDLE);//使能空闲中断 if(__HAL_UART_GET_FLAG(&hlpuart1, UART_FLAG_IDLE) != RESET) //判断已经接受到一字节数据后的空闲中断 { LPUART_IDLECallBack(&hlpuart1); }
/ USER CODE END LPUART1_IRQn 1 / } void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if(huart->Instance==LPUART1) {
} } void LPUART_IDLECallBack(UART_HandleTypeDef *huart) { if(huart->Instance==LPUART1) { __HAL_UART_CLEAR_IDLEFLAG(&hlpuart1);//清除空闲中断标志位,防止一直进入空闲中断影响后续数据接收 __HAL_UART_DISABLE_IT(&hlpuart1,UART_IT_IDLE); HAL_UART_Transmit(&hlpuart1, (uint8_t *)DataBuff, rx_len, 300); test1=rx_len; test=DataBuff[0]; rx_len=0; } } |
求助!!!stm32cubeide工程运行报错eclipse.cdt.core,该如何解决
stm32l476ret6 sai主时钟没有波形输出。
STM CUBE AI错误导入onnx模型报错
基于IAR平台制作STM32 ST-LINK Utility需要的stldr文件
L433单片机的SPI3,在从模式,开接收中断情况下的问题
编码器模式下,定时器溢出问题
DMA是怎么在电路(硬件上)实现数据转运的?
STM32F103C8T6 烧录程序后上电不工作
stm32L476部分电脑读不到驱动
STM32F767IGx 使用串口模块正常运行串口不能接收,debug模式正常。
如果不使用空闲中断是否正常