stm32f030串口(中断查询都一样)与flash读写一起使用时发生卡机现象

您所在的位置:网站首页 鼠标和串口冲突怎么解决的 stm32f030串口(中断查询都一样)与flash读写一起使用时发生卡机现象

stm32f030串口(中断查询都一样)与flash读写一起使用时发生卡机现象

2024-07-10 22:34:51| 来源: 网络整理| 查看: 265

   在使用stm32f030f4芯片时,用到串口和内部flash读写。无论串口(中断方式和查询方式)还是flash读写,在单独使用时都没有问题。可一旦两者一起使用,便会出现芯片卡死现象。

   通过测试发现,一旦出现卡死现象,就无法完成flash擦除函数,因此首先推断是在flash擦除函数FLASH_ErasePage(Erase_FlashAddr)内部出现死机现象,在进入该函数内部后,发现没有任何语句会产生死机,与此发现推断错误。

   突然想到flash操作需要一定的时间完成,如果有中断不停的产生,也会出现卡机现象,而且flash操作也将无法进行。于是开始检查是否有相关中断没有关闭。

      终于发现下面这个USART1->ISR寄存器中的ORE位: 

Bit 3 ORE: Overrun error     This bit is set by hardware when the data currently being received in the shift register is ready to be transferred into the RDR register while RXNE=1. It is cleared by a software, writing 1 to the ORECF, in the USARTx_ICR register.  An interrupt is generated if RXNEIE=1 or EIE = 1 in the USARTx_CR1 register.  0: No overrun error  1: Overrun error is detected  Note: When this bit is set, the RDR register content is not lost but the shift register is  overwritten. An interrupt is generated if the ORE flag is set during multibuffer communication if the EIE bit is set.  This bit is permanently forced to 0 (no overrun detection) when the OVRDIS bit is set in the USARTx_CR3 register. 

 通过上面红色字体我们可以发现,当RXNEIE = 1 OR EIE =1时,会只要出现Overrun情况,就能产生一个中断!刚好串口接收中断开启条件符合!也就是说当我们开启串口接收中断后, 只要出现Overrun现象,就会产生一个ORE中断,而其标志位OREVCF是通过software清0的,而这个标志位我并没有在程序中清0!这个就是问题所在。

  在中断中清除ORE标志位后,程序终于正常。

  在上面说明中可以注意到,通过置位OVERDIS标志位,就能强制清除ORE标志位。

  最后需要说明的是,ORE中断其实和RXNE中断是一样的,都是void USART1_IRQHandler(void);这个也是通过测试发现的。这也是为什么之前一开始没有怀疑中断卡死的情 况,因为最开始测试时发现每次都能进入到void USART1_IRQHandler(void)中,但没想到是那时进入的ORE中断,而不是RXNE中断产生的。

   最开始也测试到卡死时RXNEIE会被清零,所以很长时间一直纠结在重启RXNEIE上面,而这个是没有效果的。

就这么多吧 



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭