资料介绍
调研:一、经过调研:1.1 客户除了使用USART做串口通信,还开启了定时器中断来进行数据采集.1.2 定时器的优先级比串口接收的优先级高.1.3 定时器处理数据操作也比较频繁.1.4 客户使用的STM32F1标准库(版本V3.5.0).二、经过问题复现和使用ST-LINK在线调试和定位发现:2.1 在出现这个问题的时候,程序不断的进入串口接收中断,不能够运行到main主函数处理其他任务了.2.2 发现ORE标志为‘1’,也就说明程序是发生了串口溢出错误.2.3 客户在进入串口中断后会调用USART_GetITStatus(USART2, USART_IT_RXNE)来获取RXNE的值.如果RXNE为1则去读取DR数据寄存器的数据,读取后RXNE为0,但是ORE的标志依然为1,依然进入了串口中断.三、经过分析以及我们可以通过我们芯片的用户手册可以得到以下信息:3.1 程序不断进入串口中断是因为ORE标志始终为1,没有被用户清除掉:从上图红色部分我们可以看到,如果串口接收中断开启了,那么ORE为1时就会产生中断.3.2.从下图我们可以看到,顺序执行对USART_SR和USART_DR的操作就会清除ORE的标志,客户在中断中执行了以下操作,那为什么ORE标志还没有被清除呢?(R1执行了读USART_SR操作,R2执行了读USART_DR操作).3.3 我们可以看手册中下表的解释:3.3.1 ORE表征的是一个历史事件,当ORE为1时,表明至少有1个数据已经丢失.3.3.2这有2种可能发生的情况,RXNE为1的情况R3和RXNE为0的情况R4,如下图中的解释.3.3.3我们从上图可以看出,3.2图中的R1+R2操作只能处理RXNE为1的情况;当RXNE为0的特殊情况, 就是在读序列器件(在USART_SR寄存器读访问和USART_DR读访问之间)接收到新的数据,数据SR虽然被读过了,但是overrun事件依然发生了,以上操作是不能够处理的:3.4 因此我们要在应用中对ORE标志进行处理,即当判断发生ORE中断的时候,我们再读一次USART_DR的值,这样如果没有新的Overrun溢出事件发生的时候,ORE会被清除,然后程序就不会因为ORE未被清除一直不断的进入串口中断了,代码处理如下:结论:对于这种情况,我们可以看到USART串口接收中断使能了,那ORE中断也就开启了;为了消除在通过读序列(USART_SR/USART_DR)的过程中产生的溢出错误,我们可以尝试在应用程序中需要针对ORE标志做一个处理来清除ORE标志,使得串口通信可以正常的继续工作.建议客户在做串口通信时需要增加帧检验功能,如CRC校验等...,当发生ORE时,帧校验肯定是通不过的,不会造成从机误响应.(mbbeetchina)
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 一种无源谐波抑制装置设计 0次下载
- 嵌入式:初次了解STM32的USART串口通讯(中断方式)
- 一种无参考彩色噪声图像质量评价方法 1次下载
- USART中断方式接收无响应问题的情况及其处理方法 5次下载
- 一种对4/5G邻区缺失问题核查方法资料下载
- 中断驱动多任务--- 单片机(MCU) 下的一种软件设计结构资料下载
- 51单片机外部中断的两种触发方式资料下载
- 教你一种抑制EMI的简单方法资料下载
- 一种带核方法的判别图正则非负矩阵分解算法 30次下载
- 一起学习中断处理程序资料下载
- STM32的中断:抢占优先级和响应优先级资料下载
- 使用6种中断方法点亮一个LED的程序资料合集免费下载
- 使用51单片机的中断方式实现串口数据发送与接收的程序免费下载
- 一种实时稳像方法及其电路设计 7次下载
- 一种快速瞬态响应的无片外电容LDO_孙建伟 5次下载
- 详解单片机串口高效收发数据的实现方法 1695次阅读
- 一种高效的串口收发思路及方案 574次阅读
- 一种工业上常用改善动态响应的控制方法 875次阅读
- 人工智能是一种改进数据控制和处理的方法 3035次阅读
- 一种通过组合天线接收无线电信号的接收系统设计方法详解 3233次阅读
- STM32单片机的USART接收数据问题解决方案 5967次阅读
- 8051单片机的中断响应过程解析 9342次阅读
- 单片机实现利用中断复位的两种方式 9390次阅读
- 【新专利介绍】一种无磁感应水表及其使用方法 3216次阅读
- 一文详解USART模块接收中断的问题处理 7628次阅读
- 一文详解ARM单片机三种中断返回情况 2904次阅读
- 一种制备近红外光响应的动态褶皱的方法 6417次阅读
- 介绍学习一种模拟信号的处理方式:对数处理 1w次阅读
- ARM单片机三种中断返回情况的分析与解决 1274次阅读
- 一种提高系统响应速度的SoC系统架构 1163次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1491次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 95次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 11次下载 | 免费
- 6100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 7基于单片机和 SG3525的程控开关电源设计
- 0.23 MB | 4次下载 | 免费
- 8基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537793次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多