|
每次复位后发现接收的第一个字节总是丢失,但后面的缺没问题。例如发送数据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; } } |
串口DMA收发出现ORE错误
请问各位一下stm32L431rct6这款芯片,官方有没有停产?
Discover Endless Word Challenges With Wordle Unlimited Every Day
STM32L496ZG 通过串口驱动 SIM7022 NB-IoT 模组无法注册网络
将 TIM2 用作 TIM5、TIM1 和 TIM8 的时序控制器
Pokerogue: A Browser-Based Roguelike Pokémon Game That Hooks You
STM32U5系列上电时序
STM32L476项目运行提示没有crypto.h
STM32生产产地和版本
50台设备共用一条CAN总线,会概率性丢包
微信公众号
手机版
如果不使用空闲中断是否正常