野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 355|回复: 3

串口接收出错

[复制链接]
发表于 2025-11-5 11:20:57 | 显示全部楼层 |阅读模式

串口接收为什么接收几次后就无法进入中断
int main(void)
{
  while (1)
  {       
                if(flag != 0){
      printf("%s\r",RX_buff);   //串口打印接收到的数据
      flag = 0;               //清空标志位
                }                                                                                                                                                                         }                                                                                                                                                                              void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart,uint16_t Size){
  if(huart == &huart1)     //判断是否是串口一的中断
        {      
    HAL_UART_DMAStop(huart);  //暂停DMA接收
    __HAL_UNLOCK(huart);      //解锁串口状态
    flag = 1;                 //接收完成标志
                HAL_UARTEx_ReceiveToIdle_DMA(&huart1,RX_buff,255); //再次开启DMA空闲中断
  }
}       

回复

使用道具 举报

 楼主| 发表于 2025-11-5 11:24:39 | 显示全部楼层
求助大佬们
回复 支持 反对

使用道具 举报

发表于 2025-11-6 09:46:24 | 显示全部楼层
DMA方式发送,IDLE空闲接收,判断一下是否空闲
野火论坛202511060945188388..png
野火论坛202511060945388998..png
回复 支持 反对

使用道具 举报

发表于 2025-11-6 09:49:36 | 显示全部楼层
还有一点,发送的时候先把接收中止一下
野火论坛202511060949259175..png
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-12-5 14:43 , Processed in 0.116622 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表