历史上的今天
返回首页

历史上的今天

今天是:2024年12月03日(星期二)

正在发生

2018年12月03日 | STM32F10x系列UART中断异常调试经历

2018-12-03 来源:eefocus

硬件环境: STM32F105RCT6


软件环境:FreeRTOSV8


问题描述:采用中断方式接收数据,然后将收到的一帧数据放入消息队列,然后有专门的一个任务用来从消息队列中取数据并处理。jlink调试以及烧录运行都是可以的,但是当随着通信频率的增加以及运行时间的加长,系统会出现“死机”(即,不停的进入中断而致使主程序流程无法执行);


问题分析:根据现象猜测   1、是否为堆栈溢出了呢?  2、是否频率太高了呢? 3、是否标志位忘记没有清除呢?


然后逐项进行测试:


1、查htm文件确定大概需要的堆栈,发现确实存在溢出的可能:



而我分配的为:然后更改为0x00000800,烧录测试,还是存在同样问题,然后在调试串口中增加命令,来通过命令交互读取各任务运行时占用的堆栈,占用堆栈获取采用:uxTaskGetStackHighWaterMark(),发现并没有任务的堆栈随着时间推移而增加,所以暂时排除堆栈溢出的原因。


2、将发送频率降低然后长时间运行,400ms的发送频率(UART配置的波特率为9600,数据帧长度为8字节),烧录运行后大约1小时后就有可能复现问题。所以觉得应该是别的地方还是存在问题,频率过高并不是导致该问题的根本原因,高频率只是让问题更容易出现。


3、将所有的串口错误的中断检测均加上,看是哪儿出现了异常,中断捕获采用USART_GetITStatus,在捕获到中断后,清楚中断置位,发现长时间运行后还是不停进入中断,但是USART_GetITStatus检测到的所有中断位均是reset,为什么会一直进入中断呢,即使已经不发送数据了,然后想到可以通过USART_GetFlagStatus来检测;将所有的检测错误的方式均换成USART_GetFlagStatus,发现存在ORE中断置位,然后在结果为set时,清除置位;长时间运行程序,OK,问题没有复现。发送频率改为10ms,运行一晚上问题没有复现,到此问题得以解决。


结论:在使用串口中断接收数据时,ORE中断应通过USART_GetFlagStatus来进行捕获。


推荐阅读

史海拾趣

Hosiden Corporation公司的发展小趣事

随着全球市场的不断扩展,Hosiden积极实施全球化战略,以满足全球客户对高质量电子产品的需求。公司不仅在日本本土拥有强大的生产基地和销售网络,还通过设立海外分支机构、与国际知名企业建立战略合作关系等方式,不断拓宽其全球市场版图。例如,Hosiden在中国市场通过投资豪熙电电子(上海)有限公司等方式,加强了其在中国及亚太地区的业务布局。

Anaren Ceramics公司的发展小趣事

Anaren Ceramics公司深知技术创新是企业发展的核心动力,因此一直致力于打造一支强大的研发团队。公司投入大量资金用于研发人才的引进和培养,同时积极与高校和科研机构建立合作关系,共同开展技术研发项目。这些举措使得公司的研发团队不断壮大,为公司的发展提供了源源不断的创新动力。

Delphi Connection Systems公司的发展小趣事

随着全球对环保意识的不断提高,Delphi Connection Systems公司也积极响应环保号召,致力于研发和生产环保型连接器产品。公司采用环保材料和工艺,减少生产过程中的污染排放,同时推出可回收、可再利用的连接器产品。这一举措不仅符合了环保要求,也为客户提供了更加环保的解决方案。

Amphenol Aerospace公司的发展小趣事

随着市场的不断发展,Delphi Connection Systems公司意识到单靠自身的力量难以在激烈的市场竞争中立足。于是,公司积极寻求与其他企业的战略合作,通过资源共享、优势互补,共同开拓市场。公司与一家知名的汽车制造商建立了战略合作关系,为其提供高质量的连接器产品,从而成功进入了汽车电子行业市场。

ASI [ASI Semiconductor, Inc]公司的发展小趣事

ASI Semiconductor, Inc.(以下简称ASI)的故事始于1979年,当时它在美国加利福尼亚州北好莱坞成立。作为一家初创企业,ASI专注于设计、供应和市场先进的高功率、脉冲射频晶体管和托盘。在早期,ASI以其独特的技术视角和市场需求洞察,迅速在行业中站稳了脚跟。通过与摩托罗拉、飞利浦等公司的合作,ASI开始为商用航空电子设备、雷达、医疗和工业应用提供高质量的射频功率晶体管。这种初步的成功为ASI日后的快速发展奠定了坚实的基础。

恒连电子(EVERCOM)公司的发展小趣事

随着公司实力的不断增强,恒连电子开始积极拓展国内外市场。在国内市场,公司通过与各大电商平台合作,加大品牌宣传力度,提高产品的知名度和美誉度。同时,公司还积极参与各类行业展会和论坛活动,与同行交流学习,提升公司的行业影响力。在国际市场方面,恒连电子通过与国外知名企业的合作,引进先进的技术和管理经验,提升公司的国际化水平。此外,公司还积极开拓海外市场,将产品出口到多个国家和地区。

问答坊 | AI 解惑

单片机硬件系统设计之原则

一个单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统的配置,即按照系 ...…

查看全部问答>

wince应用程序问题

用VS2005调试的wince应用程序,在开发板上运行的时候出现如下错误: 致命的应用程序错误 应用程序test.exe执行了一个非法操作,将被关闭。若问题持续出现,请与供应商联系。 程序:Test.exe 异常:0xc00000FD 地址:00011860 问题出现在哪呢 ...…

查看全部问答>

MTK6225 手机开发板(含源代码)

MTK6225 手机开发板(含源代码) 有诚意者请联系 Qq:296662705 硬件特性: 1、 CPU:mtk6225 2、 TFLASH 卡接口 3、 176X220 2.6寸TFT LCD,最高支持320*240*16的TFT LCD 4、 4线触摸屏接口 5、 双声道音频输出 6、 一个Camera 130万像素 ...…

查看全部问答>

三端变色发光二极管的封装问题.!

型号有2EF302、2EF312、2EF322.. 谁能帮我找下它的尺寸封装. 是不是和三极管一个大小?按三极管来封装就OK了吗?…

查看全部问答>

TI M3 DAY研讨会发的两个光盘分别是干什么用的

TI M3 DAY研讨会发了两个光盘,一个包含了keil,驱动等,另外一个是干嘛的?请指教…

查看全部问答>

【晒经典】LM386音频放大模块

LM386电源电压4--12V,音频功率0.5w。LM386音响功放是由NSC制造的,它的电源电压范围非常宽,最高可使用到15V,消耗静态电流为4mA,当电源电压为12V时,在8欧姆的负载情况下,可提供几百mW的功率。它的典型输入阻抗为50K。特性(Features): 静态 ...…

查看全部问答>

【MSP430共享】基于以太网的智能设备控制器的设计与实现

嵌入式系统的发展促进 了智能设备的网络化, 针对家庭智能化 问题 , 提出了智能家居系统的应用模型, 设计了一种基于MS P 4 3 0 F 1 4 9单片机的具有网络接口的智能设备控制器, 分析其硬件接 口电路 、 软件层次结构和应用软件开发方法, 实现了 ...…

查看全部问答>

求助

I/O模拟I2C,主机读操作(从机向主机发送数据)时,SDA和SCL应该设置成什么状态?…

查看全部问答>

MSP430FF552X的数据手册

MSP430FF551X,MSP430FF552X的数据手册…

查看全部问答>