STMCU小助手
发布时间:2022-3-9 10:50
|
前言 简单介绍一下如何使用FreeRtos的中断配置和临界段。 一、stm32的NVIC 分组配置 STM32最多有 5 种优先级分组设置,这 5 个分组在 msic.h 中有定义。因为FreeRTOS 的中断配置没有处理亚优先级这种情况,所以我们只能配置中断优先级分组为 4,直接就 16 个主优先级,使用起来也简单!
二、FreeRTOS 相关API函数 1.开关中断 FreeRTOS 打开中断 :portENABLE_INTERRUPTS () FreeRTOS 关闭中断函数为: portDISABLE_INTERRUPTS()。 利用他们可以打开或屏蔽FreeRTOSConfig.h中指定优先级的中断。 备注: 在FreeRTOSConfig.h文件中宏定义了freerots可以管理的优先级 #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5 //系统可管理的最高中断优先级 当用户中断优先级高于这个宏定义的优先级则关闭中断只会关闭低于或等于此宏定义设置的优先级 2.临界段代码
1、taskENTER_CRITICAL()和 taskEXIT_CRITICAL()任务级临界代码保护使用方法如下:
2. taskENTER_CRITICAL_FROM_ISR()和 taskEXIT_CRITICAL_FROM_ISR()中断级临界段代码保护中断级临界代码保护使用方法如下: //定时器 3 中断服务函数
备注:askENTER_CRITICAL_FROM_ISR()和 taskEXIT_CRITICAL_FROM_ISR()中断级别临界段代码保护,是用在中断服务程序中的,而且这个中断的优先级一定要低于configMAX_SYSCALL_INTERRUPT_PRIORITY,因为高于这个优先级的中断服务函数不能调用 FreeRTOS 的 API 函数 |
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
OpenSTLinux 6.1发布:M33-TD加持+安全升级,STM32MPU开发效率翻倍!
【经验分享】STM32CubeIDE汉化
手把手教你VSCode搭建STM32开发环境
RTOS在STM32中的应用
微信公众号
手机版