打印

APOLLO F429之delay函数陷入死循环问题

[复制链接]
406|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一亚麻怡|  楼主 | 2018-7-12 09:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位高手:
小弟是个菜鸟,在做流水灯实验时,怎么做也不行,后来用断点跟踪的办法,发现stm32f4xx_hal_timebase_tim_template.c文件当中有一个 HAL_StatusTypeDef HAL_InitTick (uint32_t TickPriority)函数。而HAL_Init()函数调用到HAL_InitTick(TICK_INT_PRIORITY),调用到 __weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority),而这个函数在文件stm32f4xx_hal.c中。根据规则 __weak 开头的函数,在没有与它同名的函数时,调用它;一旦出现与它同名的函数,就要调用与之同名、不以__weak开头的函数。因此HAL_Init()实际调用的是stm32f4xx_hal_timebase_tim_template.c文件当中的 HAL_StatusTypeDef HAL_InitTick (uint32_t TickPriority)函数。我从工程中移除了文件stm32f4xx_hal_timebase_tim_template.c解决了这个问题。
水平太菜了,但给我的教训很深刻,同时对_weak类型函数有了进一步的体会。

使用特权

评论回复

相关帖子

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

本版积分规则

404

主题

404

帖子

0

粉丝