
前言 简单介绍一下如何使用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 Finder华为应用商店正式上线!移动选型工具助力开发效率升级
【2025·STM32峰会】GUI解决方案实训分享5-调通板载的NRF24L01 SPI接口并使用模块进行无线通信(发送和接收)
【2025·STM32峰会】GUI解决方案实训分享2-编译运行TouchGFX咖啡机例程(含桌面仿真)
实战经验 | Keil工程使用NEAI库的异常问题
STM32 ISP IQTune:真正零门槛的免费ISP调整软件
【经验分享】STM32 新建基于STM32F40x 固件库的MDK5 工程
意法半导体MCU双供应链策略,打消中国客户后顾之忧
2024意法半导体工业峰会:赋能智能电源和智能工业,构筑可持续未来
ST推出灵活、面向未来的智能电表通信解决方案,助力能源转型
意法半导体 x Qu-Bit Electronix:推动新一轮的数字声音合成革命