打印

RTX5的系统时钟节拍和STM32H7的HAL库时间基准都使用Systick的简单方法

[复制链接]
211|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
由于RTX5的系统时钟节拍默认是用的滴答定时器,STM32H7的HAL库时间基准也是用的滴答定时器

对于这种情况,我们一般的情况下是使用其他的通用定时器替代,不过要额外的占用一点系统性能,多占用一个定时器倒是没有关系,应该H7的定时器很多。

简单的处理办法是重新下面两个函数即可:
HAL_StatusTypeDef HAL_InitTick (uint32_t TickPriority)
{
        return HAL_OK;
}

uint32_t HAL_GetTick (void)
{
        static uint32_t ticks = 0U;
        uint32_t i;

        /* RTX5启动后使用 */
        if (osKernelGetState () == osKernelRunning)
        {
                return ((uint32_t)osKernelGetTickCount ());
        }

        /* RTX5启动前使用  */
        for (i = (SystemCoreClock >> 14U); i > 0U; i--)
        {
                __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP();
                __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP();
        }
        
        return ++ticks;
}

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

384

主题

384

帖子

0

粉丝