stm32软件复位

这篇具有很好参考价值的文章主要介绍了stm32软件复位。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

有两种方法,一种是调用系统复位函数,另一种是跳到程序起点。

1.调用系统复位函数法:

void SoftReset(void)

{ __set_FAULTMASK(1); // 关闭所有中端

NVIC_SystemReset(); // 复位

}

总结,这种方法有时候会不起作用。所以,还是第2重方法比较好。

2跳转法

参考:STM32之系统重启文章来源地址https://www.toymoban.com/news/detail-503638.html

int boot_jump(u32 Map, u32 Reset)
{                
    __set_MSP(Map);
    ((void(*)())(Reset))();
}

void soft_reset_do(void)
{
    u32 addr = 0x08000000;//APP_ADDR0;

    u32 base = addr > NVIC_VectTab_FLASH ? NVIC_VectTab_FLASH:NVIC_VectTab_RAM;
    u32 offset = addr - base;

    NVIC_SetVectorTable(base, offset);
    
    u32 map = *((u32* )addr);
    u32 reset = *((u32*)(addr + 4));
    boot_jump(map,reset);
    //————————————————
    //版权声明:本文为CSDN博主「liliye」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    //原文链接:https://blog.csdn.net/liliye/article/details/46772457
}

到了这里,关于stm32软件复位的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32最小系统板上所有电路的认识和学习。(晶振电路(电容的作用),复位电路,下载端口,供电电路)

    在STM32最小系统板上,系统电路包括以下内容: 外部晶体振荡电路:用于提供系统时钟。 电源电路:包括5V稳压芯片和3.3V稳压芯片,用于提供芯片和外围器件所需的电压。 复位电路:包括复位电路和手动复位按键,用于确保系统的可靠启动。 调试接口:包括SWD调试接口和

    2023年04月19日
    浏览(44)
  • STM32的复位与复位流程

    对于典型的Cortex-M微控制器,复位类型共有三种: 上电复位。复位微控制器钟的所有部分,其中包括处理器、调试支持部件和外设等。 系统复位。只会复位处理器和外设,不包括处理器的调试支持部件 处理器复位。只复位处理器。         在系统调试或处理器复位操作过

    2024年02月15日
    浏览(32)
  • STM32-2FSK解调 一种简单的C语言包络提取方法

    效果如图,其中方波为基带信号,原始信号为2FSK经过一路带通滤波器后的理想输出结果。 程序对原始信号的绝对值信号进行包络提取。可以看到提取出的包络信号与方波信号相差无几。  代码如下: 可以看出阈值的设置相当重要,建议对输入的信号求平均值,以平均值作为

    2024年02月12日
    浏览(40)
  • STM32 复位电路设计

    在此之前我是个只会抄写原理图的工程师,每当遇到一个问题时,确需要解决很久,最根本的原因在于不明白其中的原理,这次补充一下单片机复位电路设计 在做一件事情之前需要明白为什么要这么做,我们为什么要设计复位电路呢?一下几点原因是我总结出来的。 当你的

    2023年04月08日
    浏览(37)
  • 5 STM32复位和时钟控制

    STM32的复位功能 系统复位: 系统复位将复位除时钟控制寄存器CSR中的复位标志和备份区域中的寄存器以外的所有寄存器为它们的复位数值。(按键复位和软件复位属于系统复位) 电源复位: 电源复位将复位除了备份区域外的所有寄存器。 后备域复位: 备份区域拥有两个专

    2024年02月11日
    浏览(41)
  • STM32调用DSP函数方法

    ..DriversCMSISDSPIncludearm_math.h(341): error:  #35: #error directive: \\\"Define according the used Cortex core ARM_MATH_CM7, ARM_MATH_CM4, ARM_MATH_CM3, ARM_MATH_CM0PLUS, ARM_MATH_CM0, ARM_MATH_ARMV8MBL, ARM_MATH_ARMV8MML\\\"     #error \\\"Define according the used Cortex core ARM_MATH_CM7, ARM_MATH_CM4, ARM_MATH_CM3, ARM_MATH_CM0PLUS, ARM_MATH_CM0, ARM_M

    2024年02月12日
    浏览(38)
  • freemodbus移植进STM32(包含HAL库和标准库两种方法)

    基于freemodbus1.6 使用HAL库 软件:stm32cubemx stm32cubeide 后续会更新标准库的移植。以及rtos下的移植(尽量) 这个获取方法网上到处都是,不细说了。 新建工程只列出了与移植freemodbus相关的设置 这里我使用的是485通信,所以额外使能了一个引脚 使能一个定时器,这里我用的是

    2024年02月05日
    浏览(47)
  • 采用一种比较粗暴的方法解决lvgl切换screen时候造成的卡死问题/LVGL/stm32/内存

    最近有个项目在做基于stm32h7的交互界面制作,大概需要通过lvgl图形库做11个界面加上一堆控件(可以看一下下面的图,只能说真不少),然后就出现了烧录程序后,就会出现白屏(大概率就是卡死了),一开始想简化一下页面,注释了几个(治标不治本,所以再找了别的方法

    2024年03月14日
    浏览(91)
  • STM32——05-按键、时钟控制、中断复位 点亮LED灯

    如何点亮一颗LED灯   编程实现点灯 常用的 GPIO HAL 库函数: void HAL_GPIO_Init ( GPIO_TypeDef * GPIOx , GPIO_InitTypeDef * GPIO_Init ); void HAL_GPIO_WritePin ( GPIO_TypeDef * GPIOx , uint16_t GPIO_Pin , GPIO_PinState PinState ); void HAL_GPIO_TogglePin ( GPIO_TypeDef * GPIOx , uint16_t GPIO_Pin );  结构体  GPIO_InitTypeDef  定义:

    2024年02月08日
    浏览(50)
  • Win10系统Office 软件图标变白两种解决方法

    问题描述:因为清理C盘的时候,不小心把office的图标文件删除了。导致word、excel、ppt文件图标都变成白色的了。 问题原因:因为注册表里office的DefaultIcon键值找不到文件,导致图标空白。 解决方法:将对应的图标文件修改为office对应word、excel、ppt的exe执行文件路径中。 示例:

    2024年02月06日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包