你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于Cube库定时器回调函数的使用问题

[复制链接]
D罩杯恋人 提问时间:2016-4-8 00:07 /
求组,用Cube生存的工程,它里面有例程;他例程库文件stm32f1xx_hal_tim.c定义了回调函数:如
__weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
  /* Prevent unused argument(s) compilation warning */
  UNUSED(htim);
  /* NOTE : This function Should not be modified, when the callback is needed,
            the __HAL_TIM_PeriodElapsedCallback could be implemented in the user file
   */

}

然后他在main.c又定义了:如
/**
  * @brief  Period elapsed callback in non blocking mode
  * @param  htim : TIM handle
  * @retval None
  */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
  BSP_LED_Toggle(LED2);
  HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_5);
}

问题:为什么他的工程编译时不会报:Symbol HAL_TIM_PeriodElapsedCallback multiply defined  错误,我的会呢?
收藏 1 评论12 发布时间:2016-4-8 00:07

举报

12个回答
ataudio 回答时间:2017-8-15 09:59:18
鄙视楼主。求助时,大家真心帮忙解决。问题解决了,也不通报一下解决办法。
wofei1314 回答时间:2016-4-8 13:17:40
__weak ,这个是关键,如果有和 _weak 同名函数的,则加了 __weak修饰的自动被替换
yklstudent-1794 回答时间:2016-4-8 08:24:40
那你估计要研究下__weak这个是干嘛用的了
肖久 回答时间:2016-4-8 10:03:14
帮顶 帮顶
netlhx 回答时间:2016-4-8 10:06:55
__WEAK可以类似于C++里的重载
潇潇雨歇pku 回答时间:2016-4-8 10:18:59
如果有__weak,则如果外部定义了该函数,就使用外部定义,如果没有,则使用本地定义。所以是不会报错的。
我自己试了下,在stm32f1xx_hal_tim.c有__weak定义的情况下,我再在main.c中定义是没有问题的。
你看一下你自己的程序里到底有没有__weak。
D罩杯恋人 回答时间:2016-4-8 23:12:44
我也是定义在main函数里面,没有加__weak,,如下:
/* USER CODE BEGIN 0 */

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{

  HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_5);
}

/* USER CODE END 0 */

但是编译报错,这是为何:
EW\EW.axf: Error: L6200E: Symbol HAL_TIM_PeriodElapsedCallback multiply defined (by main.o and stm32f1xx_hal_timebase_tim.o).
auto_y 回答时间:2016-10-8 15:28:36
D罩杯恋人 发表于 2016-4-8 23:12
我也是定义在main函数里面,没有加__weak,,如下:
/* USER CODE BEGIN 0 */

你好,问题解决了吗?
D罩杯恋人 回答时间:2016-10-11 22:02:01
已经解决了
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版