GD32E23x的USART被断点打断后重新运行,会一直进入中断的问题

2023-11-03

GD32E23x的USART被断点打断后重新运行,会一直进入中断的问题

GD32E230K8单片机USART0连接一个从机芯片,该芯片每100ms发来一串16Bytes的数据,MCU中断接收,没有开启FIFO
只开启了RBNE(接收缓存非空)中断。

在进行DEBUG时,全速运行,没有问题

打断点或单步调试时,会中断串口接收中断

此时再全速运行,会发现CPU被串口中断占据,无法正常运行其他代码

检查中断标志,非RBNE

经过一段时间查找原因,发现USART_STAT中的ORERR被置位,频繁进入中断,应该和这个位有关
在这里插入图片描述

解决方法1:
只修改串口中断函数,检查USART_STAT中的ORERR是否被置位,如果是,则把 USART_INTC 中的OREC写1(清零USART_STAT的ORERR位)

也可以顺便检查 USART_STAT中的低 4 bits,如果有置位,也可以一起清零( USART_INTC 写1清零)

if(USART_STAT(USART0) & 0x0F)       //检查 ORERR  NERR  FERR  PERR
        USART_INTC(USART0) |= (USART_STAT(USART0) & 0x0F);

解决方法2:
开启 USART_INT_ERR 中断

usart_interrupt_flag_clear(USART0, USART_INT_FLAG_ERR_ORERR);
usart_interrupt_enable(USART0, USART_INT_ERR);

然后在中断函数中就可以检查 USART_INT_FLAG_ERR_ORERR 错误了,然后清零标志位即可

if(RESET != usart_interrupt_flag_get(USART0, USART_INT_FLAG_ERR_ORERR)) 
{
    usart_interrupt_flag_clear(USART0, USART_INT_FLAG_ERR_ORERR);
}

使用任意解决方法,问题解决。

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

GD32E23x的USART被断点打断后重新运行,会一直进入中断的问题 的相关文章

  • PCL 三维点云边界提取(C++详细过程版)

    边界提取 一 概述 二 代码实现 三 结果展示 本文由CSDN点云侠原创 爬虫自重 如果你不是在点云侠的博客中看到该文章 那么此处便是不要脸的爬虫 一 概述 点云边界提取在PCL里有现成的调用函数 具体算法原理和实现代码见 PCL 点云边界
  • r语言插补法_R语言缺失值的处理:线性回归模型插补

    在当我们缺少值时 系统会告诉我用 1代替 然后添加一个指示符 该变量等于 1 这样就可以不删除变量或观测值 我们在这里模拟数据 然后根据模型生成数据 未定义将转换为NA 一般建议是将缺失值替换为 1 然后拟合未定义的模型 默认情况下 R的策
  • Wireshark网络封包分析软件使用心得

    Wireshark网络封包分析软件使用心得 Wireshark 前称Ethereal 是一个网络封包分析软件 网络封包分析软件的功能是截取网络封包 并尽可能显示出最为详细的网络封包资料 Wireshark使用WinPCAP作为接口 直接与网

随机推荐

  • 资源池 'default' 没有足够的系统内存来运行此查询

    今天 有个客户突然打电话跟我说他的系统出了点问题 一个查询查了几十秒才出来 有时候还出不来 于是我上去看了一下 打开数据库看了相关视图 发现查询确实很慢 运行多次之后出现 资源池 default 没有足够的系统内存来运行此查询 嗯 这句话的
  • selenium抓取元素排除某个特定的class标签

    排除某个因素 第一优选想到正则表达式 无奈折腾半天没有成功 感觉是对元素的attrs按search在操作 对字符串末尾检测都没什么用 语法如下 text match By XPATH tr 5 td 11 div r 0 1 1 0 9 6
  • 【问题及解决】ImportError: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory

    报错 是说少了一个libpython3 7m so 1 0的库 解决参考 https github com deepmind acme issues 47 解决办法 export LD LIBRARY PATH path to libpyt
  • 7 个建议让 Code Review 高效又高质

    简介 Code Review CR 的本质是什么 是为了查错 还是为了 KPI 本文分享阿里资深技术专家的看法 CR 是一种关于社会学的长期行为和组织文化 通过 CR 形成一种良性互动的技术氛围 传播和分享知识 提升代码质量 并给出了 7
  • 签约减碳计算模型背后:重新定义ESG

    如果将法大大比做电子签界的 支付宝 那么其减碳计算模型更像是 蚂蚁森林 向内输血 向外赋能 作者 斗斗 出品 产业家 纸张 打印 包装 运输 所有环节的碳排放因子被带入公式后 签约场景的碳排放清晰可见 至此 每一份合同的碳排放都有了清晰的度
  • L2-005 集合相似度 (25 分)

    题目 题目链接 题解 STL 一开始我用的map 由于使用其size函数 一直出错 我发现map的size函数很不稳定 我是定义的
  • 并行程序设计作业7/12

    这里用的是信号量 有需求可以改成其他的 首先要新开一个桶存起来 然后得到资源在写进结果数组 如果不这样多核会比单核还慢 因为写操作并没有优化 然后我这里用了map 如果桶编号大 每个核心结果离散度比较大时 用数组会慢很多 map在离散度大的
  • 快速排序(一)

    快速排序是冒泡排序 选择排序 插入排序 奇偶排序 归并排序 希尔排序中最快的排序 所以我们当然有必要去深入了解快速排序 我们首先来了解一下划分算法 何谓划分算法 其实就是以一个数为基准 枢纽 这个比枢纽大的数 把我们它放在数组的右边 这个比
  • Jscript 访问 Json文件

    通过 XMLHttpRequest 访问 Json 文件 我们存在文件结构 我想通过Js来访问Test json的文本 Json文本为 我们需要 1 创建一个 XMLHttpRequest 对象 var request new XMLHtt
  • 手机端页面自适应解决方案—rem布局

    相信很多刚开始写移动端页面的同学都要面对页面自适应的问题 当然解决方案很多 比如 百分比布局 弹性布局flex 什么是flex 也都能获得不错的效果 这里主要介绍的是本人在实践中用的最顺手最简单的布局方案 rem 什么是rem 布局 fun
  • 将yml文件导入conda,并连接到jupyter和pyCharm

    在GitHub上找了一篇文献 想复现一下 记录一下其中遇到的环境配置问题 我也不是很懂相关的操作 只是用来记录 如果我的操作有什么不必要或错误的地方 辛苦大家耐心指正 1 把yml文件安装到conda安装路径下的envs文件夹下 把cmd转
  • 加密算法(一)

    加密算法 参考 https blog csdn net qq 31878855 article details 69396791 加密算法分类 常见的加密算法可以分成两类 对称加密算法和非对称加密算法 对称加密算法 加密和解密用的是同一串密
  • 反卷积(Transposed Convolution, Fractionally Strided Convolution or Deconvolution)

    反卷积 Deconvolution 的概念第一次出现是Zeiler在2010年发表的论文 Deconvolutional networks 中 但是并没有指定反卷积这个名字 反卷积这个术语正式的使用是在其之后的工作中 Adaptive de
  • 记工作日常 - mysql 使用json格式 被dba拒绝执行

    首先 mysql版本在5 7以下是不支持json格式存储的 若使用json格式存储数据 在使用生成实体类的工具得到的文件字段类型为 object 场景 今天准备项目上线 在archery sql审核查询平台提交sql并进行审查 审查结果为
  • 微信小程序中的网络请求

    微信小程序中的网络请求 为了安全 微信小程序只能请求http类型接口 请求其他接口时必须将接口的域名添加到新人列表中 配置request合法域名 登录微信小程序管理后台添加链接描述 gt 开发 gt 开发设置 gt 服务器域名 gt 修改
  • Linux yum 命令介绍

    原文地址 http blog csdn net tianlesoftware article details 5092720 参考地址 http blog csdn net tianlesoftware article details 53
  • 小练习:三级菜单

    要求 1 运行程序输出第一级菜单 2 选择一级菜单某项 输出二级菜单 同理输出三级菜单 3 输入出错重新选择 4 进入每一层支持返回上一级和退出 5 入最后一层提醒 menu 001 011 111 1 1 1 211 2 2 2 311
  • GBase8s创建主键失败:[42000][-201] 发生语法错误 [00000]

    GBase8s创建主键失败 42000 201 发生语法错误 00000 问题描述 原因分析 解决方案 其他 参考链接 问题描述 场景描述 修改已存在表 添加主键失败 执行SQL ALTER TABLE 表名 ADD CONSTRAINT
  • 解决kali打开部分文件夹权限不够的问题

    其实非常简单 如图 右键 选择以root用户身份打开即可
  • GD32E23x的USART被断点打断后重新运行,会一直进入中断的问题

    GD32E23x的USART被断点打断后重新运行 会一直进入中断的问题 GD32E230K8单片机USART0连接一个从机芯片 该芯片每100ms发来一串16Bytes的数据 MCU中断接收 没有开启FIFO 只开启了RBNE 接收缓存非空