• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

stm32 FreeRTOS 使用外部中断 系统

会飞的小猪猪 2018-11-04 浏览量:2986
小白求救  关于使用Free RTOS 在stm32 中配置外部 中断  什么方法我都试过了 1 : 中断优先级 配置为不在FreeRTOS控制范围内 中断处理函数 不使用 FreeRTOS  的API函数 一进入中断系统崩溃   ,, 2 : 中断优先级 配置为在FreeRTOS控制范围内 中断处理函数 使用 FreeRTOS  的API函数 一进入中断系统崩溃   ,, 3 : 总之各种方法 排列组合都试了  要么进入中断系统崩溃 要么 进几次 系统崩溃       


图中DelayMs 不会引起任务调度               所以跪求一个 FreeRTOS stm32  的参考例子    都搞了一晚上了 
1.JPG2.JPG
1 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 带FreeRTOS的外部中断服务函数,实现按键消抖,不能用delay_ms()或者和vTaskDelay(),会导致系统奔溃; 
    原因是delay_ms()其实就是对 FreeRTOS 中的延时函数 vTaskDelay()的简单封装,所以在使用 delay_ms()的时候就会导致任务切换,即不会导致这个外部中断延时阻塞,而切换到其他任务,导致外部中断出错;
    解决方式
    https://blog.csdn.net/weixin_37787043/article/details/82687509
    • 发布于 2018-12-02
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:7
  • 我想问一句,这个中断代码里为什么要有DelayMs,你这个延时是怎么实现的?
    • 发布于2018-11-04
    • 举报
    • 评论 0
    • 0
    • 0

  • 外部中断不要用延时,用操作系统会出错的
    • 发布于2018-11-04
    • 举报
    • 评论 0
    • 0
    • 0

  • 外部中断里面最好不要用延时函数。优先级配高
    • 发布于2018-11-08
    • 举报
    • 评论 0
    • 0
    • 0

  • 操作系统在中断里面加延时,或者阻塞,是很致命的,最好不要这样做
    • 发布于2018-11-24
    • 举报
    • 评论 0
    • 0
    • 0

  • 中断里面不允许出现延时函数,这个问题要注意
    • 发布于2018-11-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 这种情况有可能是你的中断里面存在延时导致的
    • 发布于2018-12-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 你的中断复位函数有延时,要删掉你的延时
    • 发布于2018-12-12
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm32 FreeRTOS 使用外部中断 系统