硬汉嵌入式论坛

 找回密码
 立即注册
查看: 972|回复: 1
收起左侧

[STM32H7] STM32H7 系统时基问题

[复制链接]

38

主题

76

回帖

190

积分

初级会员

积分
190
发表于 2024-6-15 20:59:27 | 显示全部楼层 |阅读模式



我系统用的是STM32H743 + FreeRTOS, 由于FreeRTOS和STM32H743默认使用的都是Systick作为心跳和系统时基,为了避免冲突,我修改了STM32H743的系统时基,改为了TIM6定时器。

最后生成如下的中断函数

void TIM6_IRQHandler(void)
{
    HAL_TIM_IRQHandler(&htim6);
}



void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{

    if(htim->Instance==TIM6)
    {
        HAL_IncTick();

        //这里是否可以添加一些我自己的应用代码???
    }
}

因为网上查到的信息是,作为系统和HAL库的时基不能动,所以这个TIM6就专门用来跑HAL_IncTick(); , 没有添加其他任何我自己的代码。
但是我还有其他的一些要求精确计时的应用,我的想法是再开一个TIM7定时器中断,放我自己的代码,但是由于FreeRTOS开太多中断可能影响稳定性和实时性,所以
本着可以少开就少开一个的原则,想确认下能不能直接在这个TIM6定时器中断里直接放我自己的代码?

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2024-6-16 09:19:41 | 显示全部楼层
可以不使用任何额外的定时器,HAL库RTOS都继续使用Systick。

为FreeRTOS和RTX5使用HAL库整理的两种HAL库时间基准方案
https://forum.anfulai.cn/forum.p ... 3166&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-15 01:31 , Processed in 0.038925 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表