STM软件复位

发布者:boczsy2018最新更新时间:2019-06-29 来源: eefocus关键字:STM  软件复位  函数 手机看文章 扫描二维码
随时随地手机看文章

记录下软件复位两个函数 

__set_FAULTMASK(1); 

NVIC_SystemReset(); 

我的STM32是F103系列,即CPU内核为Cortex M3,这两个函数在core_cm3.h里面都有定义, 

__set_FAULTMASK(1);是关闭所有中断的意思,目的是在执行NVIC_SystemReset();复位函数过程中不被中断所打断。 

两个函数执行后系统复位重新执行代码,包括之前所配置好的外设寄存器也都回到复位状态。


如果你想要保持之前配置好的寄存器不变的话,那么你再程序跳转之前要先初始化堆栈,而且你程序跳转的地址不对,应该这样: 

__set_MSP((__IO uint32_t) 0x08000000); 要先初始化堆栈指针 

((void () (void)) ((vu32 )0x08000004) (); 这句才是程序跳转,注意了,是((vu32 *)0x08000004


关键字:STM  软件复位  函数 引用地址:STM软件复位

上一篇:STM CAN filter配置纪要
下一篇:STM32F407 周期唤醒功能

推荐阅读最新更新时间:2024-11-13 14:28

STM32 HAL库学习系列第5篇 定时器TIM---编码器接口模式配置
cube基本配置,外设开启编码器,串口2 -------------------------------------------------------------------------------------------------------------------------- 错误:error: #20: identifier TIM_ICPOLARITY_BOTHEDGE is undefined 意思是,高级、通用定时器不能用BothEdge,只有基本定时器才能用BothEdge F4系列 /* 编码器初始化及使能编码器模式 */ ENCODER_TIMx_Init(); HA
[单片机]
<font color='red'>STM</font>32 HAL库学习系列第5篇 定时器TIM---编码器接口模式配置
STM32学习笔记:【008】IIC通信协议详解
什么是IIC(I2C)?   IIC 即Inter-Integrated Circuit(集成电路总线),这种总线类型是由飞利浦半导体公司设计出来的一种简单、双向、二线制、同步串行总线。它是一种多向控制总线,也就是说多个芯片可以连接到同一总线结构下,同时每个芯片都可以作为实时数据传输的控制源。这种方式简化了信号传输总线接口。   那么也就是说,只要收发双方同时接入SDA(双向数据线)、SCL(同步时钟线)便可以进行通信。   I2C总线的工作速度分为 3 种模式(实际上,IIC的通信速率由SCL决定):     S(标准模式),测量与控制场合;     F(快速模式),速率为 400kb/s;(默认)     Hs(高速模
[单片机]
<font color='red'>STM</font>32学习笔记:【008】IIC通信协议详解
STM3的TIM4定时器功能设置
一、初始化过程 /*********************************************************************** 利用TIM4定时器作为计时,每个0.1秒处理一次数据 计算周期的公式为: psc/72*period/1000000 (单位为秒) ************************************************************************/ void TIM2_Config(void) { TIM_TimeBaseInitTypeDef TIM_timeBaseStucture; TIM_OCInitTypeDef T
[单片机]
STM32F10x_RTC秒中断
Ⅰ、概述 RTC(Real Time Clock)是实时时钟的意思,它其实和TIM有点类似,也是利用计数的原理,选择RTC时钟源,再进行分频,到达计数的目的。 该文主要讲述关于RTC的秒中断功能,这个功能类似SysTick系统滴答的功能。RTC秒中断功能其实是每计数一次就中断一次。注意,这里所说的秒中断并非一定是一秒的时间,它是由RTC时钟源和分频值决定的“秒”的时间,当然也是可以做到1秒钟中断一次。 本文章提供的实例工程,其实验效果是: 主函数间隔0.5秒LED变化一次; 秒中断一次打印数据 RTC Sec... ; 也就是LED变化一次,串口打印一次数据 RTC Sec... 扩展部分的功能RTC计数:可以实
[单片机]
<font color='red'>STM</font>32F10x_RTC秒中断
STM32CubeMX学习笔记——STM32H743通用定时器
功能简述 主模式TIM2的中断作为从模式TIM3的时钟输入 (级联定时器) 红灯亮6灭5 频率1hz 绿灯亮3灭3 频率0.5hz STM32CubeMX配置 STM32CubeMX版本:4.27.0 配置流程: Pinout界面选择并开启需要的LED控制引脚 Clock Configuration配置时钟树 Configuration界面配置System 生成工程 Pinout配置 LED输出PIN配置,TIM2,TIM3的基本配置 Clock Configuration配置 开启系统时钟,设置TIM2、TIM3时钟(APB1) Configuration 左侧主要系统功能的开启,或中间软件层功能的开
[单片机]
<font color='red'>STM</font>32CubeMX学习笔记——<font color='red'>STM</font>32H743通用定时器
嵌入式-stm32学习:按键检测
bsp_key.h #ifndef __KEY_H #define __KEY_H #include stm32f4xx.h //引脚定义 /*******************************************************/ #define KEY1_PIN GPIO_Pin_0 //GPIO引脚号 #define KEY1_GPIO_PORT GPIOA //GPIO端口A #define KEY1_GPIO_CLK RCC_AHB1Periph_GPIOA //GPIO端口时钟 #define KEY2_
[单片机]
STM32CubeMX代码生成和点亮LED
所需工具STM32CubeMX和Keil5 1、先打开STM32CubeMX软件,点击New Project新建工程; 2.在搜索框中搜索你的项目芯片; 3、搜索出来有两个不同封装的芯片,写程序没区别,但是这个软件可以生成IO说明文档,可能会导致文档与实际封装差异。选择确定后双击~; 4、创建完工程,简单介绍一下功能; 5、先配置时钟树,我使用的F429最大支持180M时钟,我配置为最大时钟。 6、我的板子LED是接在PA11上的,在搜索栏上搜索PA11,芯片PA11会一闪一闪的。 7、点击PA11引脚,会出现下面画面,我们选择GPIO_Output 8、当PA11选择作为输出时,外设USB功
[单片机]
<font color='red'>STM</font>32CubeMX代码生成和点亮LED
STM32低功耗模式简介
STM32F10xxx有三中低功耗模式: ●睡眠模式(Cortex?-M3内核停止,外设仍在运行) ●停止模式(所有的时钟都以停止) ●待机模式(1.8V电源关闭) 时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。 上电,默认使用内部HSI时钟8M,经测试10mA左右。待机模式可实现系统的最低功耗。 可将电流消耗降至两微安。 在待机模式下,所有的I/O引脚处于高阻态,除了以下的引脚: ●复位引脚(始终有效) ●当被设置为防侵入或校准输出时的TAMPER引脚 ●被使能的唤醒引脚 /*按钮GPIOB9进入睡眠,WKUP pin(GPIOA0)唤
[单片机]
<font color='red'>STM</font>32低功耗模式简介
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved