STM32 RTOS计时器中断和线程 [英] STM32 RTOS timer interrupt and threads

查看:16
本文介绍了STM32 RTOS计时器中断和线程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在处理一个项目,在该项目中,我需要从Tim中断中执行2段代码。其中一个的优先级略高于另一个,两者都将在两个不同的计时器上运行(当然不是在相同的时间间隔)。由于两个计时器成比例(一个为1 KHz,一个为8 GHz),两个将同时触发。

因为我已经将RTOS中间件用于其他目的(优先级也比这些低得多的线程),所以我想为每个例程创建一个线程。

然而,看看cubeMX是如何生成代码的,我甚至想知道这是否可能。

我可以从任何线程启动/停止这些计时器,但只有一个HAL_TIM_PerodElapsedCallback,您通常会使用如下语句填充它:

if(hTim->;实例==TIM2)

我的假设正确吗?无论计时器从哪个线程启动,TIM回调都将始终发生在RTOS环境的外部?

如果是这样的话,有什么更好的策略来实现接近我所需的东西?

干杯

推荐答案

中断将触发。但请记住:

  1. 如果要使用任何...fromISRRTOS函数,其优先级(不是RTOS优先级,因为它们是无关的)必须低于SVC中断
  2. 它们不会同时发生(因为您只有一个核心)

这篇关于STM32 RTOS计时器中断和线程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆