STM32故障处理——HAL_Delay卡死

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

问题描述

笔者准备写一个按键控制LED亮灭的简单程序,但是程序却卡死在了用于消抖的HAL_Delay(20)处

问题所在

检查发现是因为HAL_Delay()需要用到SysTick定时器,而本人使用的STM32CubeMX对SysTick的初始中断优先级设为了15(最低),所以按键中断进入后调用HAL_Delay()函数发生卡死

解决方案

打开STM32CubeMX,进入Pinout&Configuration->System Core->NVIC,将SysTick的优先级设置得比按键中断更高即可

总是死在hal_delay,stm32,嵌入式硬件,单片机

前面的是抢占优先级,后面的是响应优先级

简单来说就是比谁的数字小,小的优先级高。比完抢占优先级比响应优先级。文章来源地址https://www.toymoban.com/news/detail-784489.html

到了这里,关于STM32故障处理——HAL_Delay卡死的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【STM32笔记】HAL库UART串口配置及重定向(解决接收中断与scanf不能同时工作、重定向卡死、低功耗一直唤醒的问题)

    【STM32】HAL库UART串口配置及重定向(解决接收中断与scanf不能同时工作、重定向卡死、低功耗一直唤醒的问题) 注意:这里用的编译器版本为ARMCC(也就是第5代编译器 而不是AC6) 首先 要使用printf和scanf 必不可少的就是 这里需要做的就是配置单片机的UART 并且使其能够被pri

    2023年04月08日
    浏览(44)
  • Vscode ssh卡死在setting up ssh host

    VScode 用ssh插件连接远程Ubuntu服务器时,卡死在setting up ssh host:initializing vscode server 网上的一些方法如手动安装VScode server或者修改VScode setting等方法都没有用 等待若干时间后,VScode结束setting up并在out输出错误: 官网文档中有一句话: Some users launch a different shell from their .bas

    2024年02月16日
    浏览(32)
  • HAL STM32通过multi_button库处理按键事件

    📍作者: 0x1abin 的multi_button库: https://github.com/0x1abin/MultiButton 📘MultiButton简介 MultiButton 是一个小巧简单易用的事件驱动型按键驱动模块,可无限量扩展按键,按键事件的回调异步处理方式可以简化你的程序结构,去除冗余的按键处理硬编码,让你的按键业务逻辑更清晰。 🔖

    2024年02月20日
    浏览(46)
  • STM32延迟(休眠)函数delay/sleep

    参考 MSP432(Keil5)——3.delay延时驱动_keil5delay函数_大写的小写字母的博客-CSDN博客 亲手测试过, 好用。用while太愚蠢,而且不好控制。 下载链接 https://download.csdn.net/download/quantum7/87982408 delay.h delay.c

    2024年02月12日
    浏览(34)
  • 富芮坤fr8008gp lvgl遇坑:卡死在lvgl定时器中;SWD接口配置;

    官方提供的lvgl的demo在gui_main函数中如下设置定时器并调用window_manager_init函数初始化各个界面: 通过分析timer1中断回调函数可以看到该中断回调函数中是有调用lvgl的lv_timer_handler函数的,也就是说涉及到lvgl的相关流程: 按照上面的代码,很容易出现卡死在Timer1中断函数中的现象,这

    2024年02月10日
    浏览(48)
  • 富芮坤fr8008gp lvgl遇坑和解法:卡死在lvgl定时器中;SWD接口配置;

    官方提供的lvgl的demo在gui_main函数中如下设置定时器并调用window_manager_init函数初始化各个界面: 通过分析timer1中断回调函数可以看到该中断回调函数中是有调用lvgl的lv_timer_handler函数的,也就是说涉及到lvgl的相关流程: 按照上面的代码,很容易出现卡死在Timer1中断函数中的现象,这

    2024年02月07日
    浏览(47)
  • 【问题】STM32G0芯片擦除flash失败,发现死在FLASH_SR_CFGBSY一直为1(已解决)

    本人开发stm32g030和g070都遇到过擦除flash失败的问题,HAL库中按照例程方式擦除存在擦除失败问题。例程基本流程如下: 按照这种方式其实很容易擦除失败。网上多数是说中断问题等,还有些是看门狗喂狗问题。 以上问题之外,本人遇到的是FLASH_FLAG_CFGBSY一直被置位,导致擦除

    2024年02月10日
    浏览(52)
  • 嵌入式STM32程序一些卡死的原因

    嵌入式STM32程序卡死的原因可能有以下几种: 1、死循环:程序中存在死循环,导致程序无法继续执行下去。 2、中断问题:中断处理不当,导致程序无法正常运行。 3、堆栈溢出:程序中使用的堆栈空间超出了预设的范围,导致程序无法正常运行。 4、资源竞争:多个任务或中

    2024年02月08日
    浏览(55)
  • STM32用FreeRTOS串口中断接收卡死问题

    现在意法半导体的配套软件做得很全面了,简直可以说是保姆式的服务。从芯片选型,引脚定义,到代码模板生成,一条龙服务,很方便。但是方便也有方便的坏处,那就是有些细节的规则会造成天然的bug。 比如,在stm32cubeIDE里新建工程的时候,如果勾选了FREERTOS 那么,程序

    2024年02月15日
    浏览(39)
  • 【STM32】FATFS文件系统f_mkfs卡死

    最近调试FATFS,通过STM32对SPI Flash进行读写操作。昨天晚上调通了,今天早上再调试,发现f_mount返回FR_NOFILESYSTEM。 依据网上所说,对磁盘格式化f_mkfs,卡死在FATFS库的ff.c-f_mkfs()的某个for循环里。 f_mkfs卡死的for循环代码位置 最后对SPI Flash进行了全片擦除命令,之后就可以正常

    2024年02月02日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包