流年_cth 2025-10-17 09:58 采纳率: 66.7%
浏览 5

STM32L0 Freertos

有人在STM32L051平台用过Freertos吗,cubemax生成的代码压根没有这两个宏:
#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 15
#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5
那么freertos是怎么管理中断啊?我实际在中断中使用freertos的API也是卡死的

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-10-17 09:58
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    问题理解

    您使用 STM32L051 平台,使用 FreeRTOS 库,但发现 Cubemx 生成的代码中缺少两个重要的宏定义:configLIBRARY_LOWEST_INTERRUPT_PRIORITYconfigLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY

    解决方案

    这两个宏定义是 FreeRTOS 的配置项,用于设置中断优先级。Cubemx 生成的代码可能没有这些宏定义是因为您没有在 FreeRTOS 配置中设置这些选项。

    解决方法

    1. 在 Cubemx 中,打开 FreeRTOS 配置选项。
    2. 在 "中断优先级" 选项中,设置 "最低中断优先级" 和 "最大系统调用中断优先级"。
    3. 保存配置并重新生成代码。

    核心代码

    如果您需要手动设置这些宏定义,可以在您的 FreeRTOS 代码中添加以下代码:

    #define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 15
    #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 15
    

    请注意,这些宏定义的值需要根据您的具体需求进行调整。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月17日