当前位置: 首页 > news >正文

STM32 HAL DMA 中断碰到的问题

流程

串口收数据—>dma搬运到变量—>空闲中断----->接收完成

配置

dma中断全部去掉
在这里插入图片描述

串口中断开启
freertos中断全部去掉
在这里插入图片描述

时钟配置

在这里插入图片描述

代码

开启中断

// DMA 空闲检查
void receives_uaru_7(void)
{RXU7 = 0;//清除中断标志HAL_UARTEx_ReceiveToIdle_DMA(&huart7, Buff_U7, sizeof_U7);//储存接收数据//HAL_UARTEx_ReceiveToIdle_IT(&huart7, Buff_U7, sizeof_U7);
}

// dma中断回调
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
{if (huart->Instance == UART7){if (Size <= sizeof_U7){//停止dma中断HAL_UART_DMAStop(huart);//将数据传到cmd处理Buff_LEN_U7 = Size;//获取接收的数据长度RXU7 = 1;//标志中断}}

处理中断

	for (;;){if(RXU7 == 1){//检测到中断U7();receives_uaru_7();//启动中断 和清除标志}osDelay(1);}

中断错误

// dma 错误回调
void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)
{if (huart->Instance == UART7){printf("串口7 dma 发生错误 可能是 缓冲区溢出 波特率错误\n");receives_uaru_7();}else if (huart->Instance == USART1){printf("串口1 dma 发生错误 可能是 缓冲区溢出 波特率错误\n");receives_uaru_1();}else if (huart->Instance == USART6){printf("串口6 dma 发生错误 可能是 缓冲区溢出 波特率错误\n");receives_uaru_6();}else if (huart->Instance == UART4){printf("串口4 dma 发生错误 可能是 缓冲区溢出 波特率错误\n");receives_uaru_4();}else if (huart->Instance == UART5){printf("串口5 dma 发生错误 可能是 缓冲区溢出 波特率错误\n");receives_uaru_5();}
}

问题

间歇性出现 中断报错
在这里插入图片描述

http://www.lryc.cn/news/433671.html

相关文章:

  • 让树莓派智能语音助手实现定时提醒功能
  • AIoTedge边缘计算+边缘物联网平台
  • Java使用拷贝asset文件,解密,并用DexclassLoader加载执行
  • 【AcWing】861. 二分图的最大匹配(匈牙利算法)
  • 经验笔记:JSP(JavaServer Pages)
  • 【零基础必看的数据库教程】——SQL WHERE 子句
  • vscode docker debug python
  • 【Kubernetes】常见面试题汇总(四)
  • MATLAB基础语法知识
  • PopupInner源码分析 -- ant-design-vue系列
  • Maven 的 pom.xml 文件中<dependency> 元素及其各个参数的解释
  • 【信创】Linux终端禁用USB存储 _ 统信 _ 麒麟 _ 方德
  • 开放API接口时要注意的安全处理总结
  • FastGPT自定义插件的icon
  • SprinBoot+Vue旅游网站的设计与实现
  • 代码随想录刷题day27丨455.分发饼干 ,376. 摆动序列 ,53. 最大子序和
  • Detect It Easy
  • c++开关灯
  • DevOps实现CI/CD实战(六)- Jenkins集成k8s
  • 张雪峰:物联网行业迎高光时刻!如何选择?我们诚聘销售工程师!
  • 利用多文件编程实现顺序表的创建,判满,插入,输出
  • 百度快照劫持之JS劫持诊断与恢复一例
  • 深入探讨Go语言中的切片与数组操作
  • 【WPS Excel】复制表格时,提示“图片太大,超过部份将被截去“ 问题
  • 驱动(RK3588S)第九课时:多节点驱动与函数接口
  • Linux系统下配置MySQL
  • 信捷 XD PLC POU编程之FB
  • 终于有人把云计算、大数据和人工智能讲明白了!
  • 【编程底层思考】详解Java内存模型(JMM)原理及其作用
  • Docker的基本概念和优势