历史上的今天
返回首页

历史上的今天

今天是:2024年09月13日(星期五)

正在发生

2018年09月13日 | STM32中NVIC_SystemReset()函数的作用?什么时候用?

2018-09-13 来源:eefocus

STM32软件复位有两种方式


(1)方式一:NVIC_SystemReset()函数用来复位STM32.

注意1:从SYSRESETREQ 被置为有效,到复位发生器执行复位命令,往往会有一个延时。在此延时期间,处理器仍然可以响应中断请求。但我们的本意往往是要让此次执行到此为止,不要再做任何其它事情了。所以,最好在发出复位请求前,先把FAULTMASK置位。需要加上这句:__set_FAULTMASK(1);意思是关闭所有中断的意思,目的是在执行NVIC_SystemReset()复位函数过程中不被中断所打断。两个函数执行后系统复位重新执行代码,包括之前所配置好的外设寄存器也都回到复位状态。如下:

__set_FAULTMASK(1);//关闭所有中断

NVIC_SystemReset();//复位函数

注意2:上面两个函数在core_cm3.h里面都有定义如下:

static __INLINE void NVIC_SystemReset(void)

{

  SCB->AIRCR  = ((0x5FA << SCB_AIRCR_VECTKEY_Pos)      | 

                 (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | 

                 SCB_AIRCR_SYSRESETREQ_Msk);                  

  __DSB();                                                                  

  while(1);                                                    

}

另外一些NVIC函数在misc.h中。

(2)方式二:1、通过置位NVIC中应用程序中断与复位控制寄存器(AIRCR)的VECTRESET位:

LDR R0, =0xE000ED0C ; NVIC AIRCR address

LDR R1, =0x05FA0001 ; 置位 VECTRESET位,前面的0x05FA是访问钥匙

STR R1, [R0] ; 触发复位序列

deadloop

B deadloop ; 该死循环保证后面的指令不可能被执行到

这种复位的作用范围覆盖了整个CM3 处理器中,除了调试逻辑之外的所有角落,但是它不会影响到CM3 处理器外部的任何电路,所以单片机上的各片上外设和其它电路都不受影响。


推荐阅读

史海拾趣

Caltron Devices Ltd公司的发展小趣事

人才是企业发展的根本。Caltron Devices Ltd公司深知这一点,因此始终注重人才培养和引进。公司建立了完善的人才培养机制,通过内部培训、外部引进等多种方式,不断提升员工的技能水平和综合素质。同时,Caltron还为员工提供良好的工作环境和福利待遇,激发了员工的工作热情和创造力。这些举措为公司的长远发展奠定了坚实的基础。

这些故事虽然基于虚构,但所描述的内容都是基于电子行业的一般发展规律和趋势进行合理推测和构建的。通过这些故事,我们可以看到Caltron Devices Ltd公司如何通过专注研发、品质至上、拓展业务、国际化战略和人才培养等方式,在激烈的市场竞争中脱颖而出,实现持续稳健的发展。

Elite Semiconductor Products Inc公司的发展小趣事

随着全球对环保和可持续发展的关注度不断提高,Elite也积极响应这一趋势。公司注重环保理念在生产过程中的贯彻实施,采用环保材料和节能技术,减少生产过程中的污染排放。同时,Elite还积极参与环保公益活动,推动环保理念的普及和实践。这些努力不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。

Communications公司的发展小趣事

在电子行业的跨界融合趋势下,一家名为“智联通信”的公司通过整合不同领域的技术和资源,成功打造出了一个全新的通信生态系统。他们不仅拥有先进的通信技术,还积极与互联网、物联网等领域的企业进行合作,共同开发新的应用场景。

通过跨界融合,“智联通信”成功地将通信技术应用于智能家居、智慧城市等多个领域,为用户提供了更加便捷、高效的服务体验。同时,他们还积极拓展海外市场,与全球伙伴共同推动通信行业的发展。

DC Components公司的发展小趣事

在电子行业中,产品质量是企业立足之本。DC Components公司深知这一点,因此始终把质量控制放在首位。公司通过实施严格的质量控制系统,确保每一个产品都符合高质量标准,并符合所有合同要求。这种对质量的坚守,使DC Components公司在市场上赢得了良好的口碑,吸引了众多客户的青睐。

Falco Electronics公司的发展小趣事

Falco Electronics非常重视企业文化建设。公司倡导“以人为本”的管理理念,注重员工的成长和发展。公司为员工提供了良好的工作环境和福利待遇,还定期开展各种培训活动,帮助员工提升技能水平。这种良好的企业文化吸引了大量优秀人才的加入,也为公司的持续发展提供了有力保障。

佰鸿(BrtLed)公司的发展小趣事

佰鸿公司在2008年成立之初,正值LED行业蓬勃发展的时期。面对激烈的市场竞争,公司经过深入的市场调研,确立了LED大功率路灯制造商、方案提供商、系统集成商的市场定位。随后,佰鸿在大功率路灯照明市政LED改造方面投入大量精力,成功完成了兰池大道、咸阳快速干道等多个大型LED路灯方案设计及老旧路灯改造项目。这些项目的成功实施,不仅为佰鸿在市场上站稳了脚跟,也为其后续发展奠定了坚实的基础。

问答坊 | AI 解惑

74系列芯片元件介绍(转载)

74系列数数字电路 7400、74H00、74L00、74LS00、74S00、74HC00、74C00、74F00、74ALS00四2输入与非门 Y=\\AB。 7401、74LS01、74HC01、74ALS01四2输入与非门(OC) Y=\\AB。 7402、74L02、74LS02、74S02、74HC02、74C02、74ALS02、74F02四2输 ...…

查看全部问答>

单片机资料

入门资料一起分享 [ 本帖最后由 slstone 于 2008-11-30 21:08 编辑 ]…

查看全部问答>

[求助]2440 SDRAM升级

hi,大家好,因为开发需要,本人对原来的2440开发板进行了内存升级,从原来的64MB升级为128MB,使用的是两片K4S511632D(原来是两片HY57V561620),现在遇到的情况是写入一个字节的数据后一整片内存区域的数据都跟着改变,查了很久也找不到原因,SDR ...…

查看全部问答>

请教关于gps数据读取的简单问题。

在windows ce 嵌入式高级编程及其实例详解一书中有一个关于gps信号读取的列子,我放到手机里为什么数据是一秒4位数据、一秒4位数据的收取,而且只有GPGSV数据,没有其他的,我用GPS Viewer软件设置串口4,4800接受正常,数据都是一秒一片数据,一秒 ...…

查看全部问答>

板子启动不了

我有两块板子,一块正常启动,一块就是启动不了。 现在的情况是这样的,cpu是动了(可以看到部分信号输出),我测试flash部分,从上电开始,就没有信号过来。 我测不到sdram部分的信号,所以也就没法确定是sdram的问题还是cpu读flash的问题。 我 ...…

查看全部问答>

请教:vc6.0移植到EVC,里面有很多的char报错,请问我应该怎么呢?

    各位大虾好!我将一个vc6.0的程序移植到EVC下,遇到了关于数据类型转换的问题。我是个新手,对于应该用什么样的数据类型和函数比较迷惑,希望各位大侠指教! 我是这样做的,不知道对不对:     将VC的程序全部粘贴到EVC ...…

查看全部问答>

2010年TI杯江苏赛区QQ交流群群号:100194463

本帖最后由 paulhyde 于 2014-9-15 09:01 编辑 2010年TI杯江苏赛区QQ交流群群号:100194463 2010年TI杯江苏赛区QQ交流群群号:100194463 2010年TI杯江苏赛区QQ交流群群号:100194463 2010年TI杯江苏赛区QQ交流群群号:100194463 2010年TI杯江 ...…

查看全部问答>

关于fpga采样频率的问题

从发送版卡中循环发出1024*1024的数据,发送条件是当l = 1时发送一行,即当l = 1时发送1024个数据,然后l = 0,经过一个小的时间间隔,令l = 1,继续发送1024个数据,如此一直循环发送。发送版发送的数据要到接收板上,同时将l信号和时钟信号一起发 ...…

查看全部问答>

求智能家居的方案

想用AVR开发一种智能家居系统,应该怎么做呢?还有远程操控什么的?求大家多多提点想法,行吗?…

查看全部问答>