硬汉嵌入式论坛

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

[STM32CubeF4] HAL库使用Timer5,freertos使用systick

[复制链接]

16

主题

17

回帖

65

积分

初级会员

积分
65
发表于 2024-11-14 19:20:29 | 显示全部楼层 |阅读模式
本帖最后由 zlx 于 2024-11-15 17:29 编辑

遇到个问题,硬汉哥。

cubemax生成的代码,hal库选择了定时器5。然后手动移植了lwip和freertos,freertos使用systick,那么systick的中断函数应该怎么设置呢?那么systick函数里面不应该使用HAL_IncTick();不然不还是和hal库的冲突了


void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
  if (htim->Instance == TIM5) {
    HAL_IncTick();
  }
}




void SysTick_Handler(void)
{
    HAL_IncTick();
    if (xTaskGetSchedulerState() != taskSCHEDULER_NOT_STARTED) /* OS开始跑了,才执行正常的调度处理 */
    {
        xPortSysTickHandler();
    }
}



更新一波:
试了cubemax生成的freertos的程序,找到了systick被放在了这里,所以这里和freertos_config.h的宏里面xPortSysTickHandler systick的定义选择一个即可。





回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-11-15 09:27:15 | 显示全部楼层
如果你的hal库选择了定时器5,那么滴答就不需要你管理了。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-11-15 09:46:02 | 显示全部楼层
参考下我这个,仅看time base.c文件

我这个里面做了两种方式,可以HAL和FreeRTOS共用滴答,也可以HAL使用TIM,FreeRTOS使用滴答

基于STM32H7的FreeRTOS+ FatFS + emWin + ST USB的综合模板下载(已经发布2021-01-21)
https://forum.anfulai.cn/forum.php? ... 0127&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

16

主题

17

回帖

65

积分

初级会员

积分
65
 楼主| 发表于 2024-11-15 17:13:17 | 显示全部楼层
谢谢,我已经把systick的HAL_IncTick()注释掉,freertos是可以跑的
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-12 06:04 , Processed in 0.051060 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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