有人在STM32L051平台用过Freertos吗,cubemax生成的代码压根没有这两个宏:
#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 15
#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5
那么freertos是怎么管理中断啊?我实际在中断中使用freertos的API也是卡死的
STM32L0 Freertos
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
4条回答 默认 最新
阿里嘎多学长 2025-10-17 09:58关注阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
问题理解
您使用 STM32L051 平台,使用 FreeRTOS 库,但发现 Cubemx 生成的代码中缺少两个重要的宏定义:
configLIBRARY_LOWEST_INTERRUPT_PRIORITY和configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY。解决方案
这两个宏定义是 FreeRTOS 的配置项,用于设置中断优先级。Cubemx 生成的代码可能没有这些宏定义是因为您没有在 FreeRTOS 配置中设置这些选项。
解决方法
- 在 Cubemx 中,打开 FreeRTOS 配置选项。
- 在 "中断优先级" 选项中,设置 "最低中断优先级" 和 "最大系统调用中断优先级"。
- 保存配置并重新生成代码。
核心代码
如果您需要手动设置这些宏定义,可以在您的 FreeRTOS 代码中添加以下代码:
#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 15 #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 15请注意,这些宏定义的值需要根据您的具体需求进行调整。
解决 无用评论 打赏 举报