公司产品STM32 B错误排查分析

2023-11-16

近期原本好好的产品,突然上电不久MCU就卡住。调试发现跳到default_handler错误,也就是B错误

根据网上获取的信息,有2个原因

1、没有相关中断

2、没清除标志

我看了下,串口2的中断函数USART2_IRQHandler已经有了,并且清除中断标志也有,不明白为什么还会出现错误

后面我试过把其他串口初始化注释掉,还是不行,最后把串口2 deiinit,就没问题了,于是还是定位串口2异常

后面经过2个小时的分析对比,看到下面这句话,这里是使能了DMA的中断

然后对比网上的DMA教程,发现我用了DMA接收,然后只弄了串口2的中断函数,没有弄DMA的中断处理函数。

于是加入了下面这个中断处理,然后就正常了,断点测试,确实会跳转到下面的这个中断中

void DMA1_Channel6_IRQHandler(void)

{
    if(DMA_GetFlagStatus(DMA1_FLAG_TC6)==SET)
    {
        DMA_ClearFlag(DMA1_FLAG_TC6);//清中断标志,否则会一直中断
    }
}

之所以困扰我2个小时,是因为我一直都写少了这个DMA中断处理,但是用了2个星期都是没问题,仅在今天才开始出现问题。一直对比SVN排查最近的修改,找其他问题。

所以移植和复制代码真的要小心谨慎,不然少点东西,就要排查很久。
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

公司产品STM32 B错误排查分析 的相关文章

随机推荐

  • 第二十八章 Unity射线检测

    本章节我们介绍一下射线 射线就是从一个固定点向一个方向发射出一条直线 在发射过程中需要判断该射线有没有与游戏物体发送碰撞 射线既可以用来检测射击游戏中武器指向目标 又可以判断鼠标是否指向游戏物体 射线的创建方式 一般使用代码来实现 接下来
  • 使用 Python 创建使用 for 循环的元组列表

    Python 的关键数据结构是列表和元组 元组元素一旦设置 就无法更改 这称为不可变性 但是列表元素可以在初始化后修改 在处理需要组合在一起的数据时 for 循环用于创建元组列表 列表比元组更具适应性 因为它们能够被修改 本教程演示如何使用
  • GDI+ 文本测量方法

    背景 图形类 Graphics 是 GDI 的核心 它提供绘制图形 图像和文本的各种方法 Graphics 中使用 DrawString 方法在指定位置绘制文本或者在一个指定矩形内绘制文本 通过调用 Graphics 对象的 Measure
  • SQL多表查询

    多表查询 基本sql语句 SELECT lt 目标字段 gt FROM lt 数据库表 gt WHERE lt 查询条件 gt GROUP BY lt 分组依据 gt ORDER BY lt 排列依据 gt 多表查询 内连接 返回满足连接条
  • webpack.optimize.CommonsChunkPlugin has been removed,please use config.optimization.splitChunks...

    webpack版本升级报错 webpack optimize CommonsChunkPlugin has been removed please use config optimization splitChunks instead 原因
  • PCB中常见错误大全

    PCB中常见错误大全 唯样商城 给你整得明明白白 线上授权代理商 唯样商城有超10万种现货库存 2000万型号数据库 满足您的元器件正品现货采购需求 一 原理图常见错误 1 ERC报告管脚没有接入信号 a 创建封装时给管脚定义了I O属性
  • vue+上传,将拿到的file转成base64地址

    前言 在某些时候我们只给后台file文件 后台会给我们返回一个地址 但是也有时候后台上传图片想要一个base64 这里提供转换方法 转换方法 param file return base64 getBase64 file return ne
  • C++的重载流输出运算符

    下列代码输出什么 include
  • 54.讲算法实战(三):剖析高性能队列Disruptor背后的数据结构和算法

    文章目录 1 基于循环队列的 生产者 消费者模型 2 基于加锁的并发 生产者 消费者模型 3 基于无锁的并发 生产者 消费者模型 Disruptor是如何做到如此高性能的 其底层依赖了哪些数据结构和算法 1 基于循环队列的 生产者 消费者模
  • python 实现md5加密

    转自 https www weidianyuedu com Python中实现MD5加密是通过hashlib完成的 在演示之前 我们先创建一段文本作为加密数据 如下所示 hashlib data py encoding utf 8 impo
  • IComparable VS IComparer

    1 IComparable public interface IComparable int CompareTo Object obj Return value A value that indicates the relative ord
  • 超市账单管理系统

    访问链接 超市账单管理 功能 登录页 账单管理 供应商管理 用户管理 密码修改 退出系统
  • XUI - 一个简洁而优雅的Android原生UI框架

    官网 GitHub xuexiangjys XUI A simple and elegant Android native UI framework free your hands 一个简洁而优雅的Android原生UI框架 解放你的双手
  • 电厂3D可视化_输变电站三维扫描建模

    电厂3D可视化 变电站数字孪生 输变电站三维扫描建模 三维激光扫描技术助力智能变电站 以数据库为中心 建成以网络为支撑 达到当前国内先进水平的智能变电站三维设计 把三维设计的方法真正贯穿于整个设计队伍 实现从二维设计思路向三维设计理念转变
  • 【二叉树】二叉树的深度优先遍历DFS(前中后序遍历)和广度优先遍历BFS(层序遍历)详解【力扣144,94,145,102】【超详细的保姆级别教学】

    二叉树 二叉树的深度优先遍历 前中后序遍历 和广度优先遍历 层序遍历 详解 超详细的保姆级别教学 先赞后看好习惯 打字不容易 这都是很用心做的 希望得到支持你 大家的点赞和支持对于我来说是一种非常重要的动力 看完之后别忘记关注我哦 这篇博客
  • python ssl socket_python ssl socket 的使用(服务器+客户端)

    首先 使用如下命令生成证书和key openssl req new x509 days 365 nodes out cert pem keyout key pem 接下来实现服务器 import socket ssl time contex
  • ResourceMgr 读取文件夹内容

    using System Collections using System Collections Generic using System IO using System using System Net using UnityEngin
  • 深度强化学习系列(6): DQN原理及实现

    利用神经网络近似值函数的方法表示为 V s w
  • Python @装饰器

    目录 目录 一 介绍 1 简单实现装饰器 普通调用 糖语法 2 进阶 普通调用 糖语法 3 装饰类 二 内置修饰器 一 介绍 装饰器 Decorators 是 Python 的一个重要部分 简单地说 他们是修改其他函数的功能的函数 与jav
  • 公司产品STM32 B错误排查分析

    近期原本好好的产品 突然上电不久MCU就卡住 调试发现跳到default handler错误 也就是B错误 根据网上获取的信息 有2个原因 1 没有相关中断 2 没清除标志 我看了下 串口2的中断函数USART2 IRQHandler已经有