关于HAL库
对于这个库有些地方不是很清楚,stm32f3xx_hal_rcc.c和stm32f3xx_hal_rcc_ex.c这两个文件有些函数的定义是相同的,只不过在stm32f3xx_hal_rcc.c中的定义前有_weak修饰,为什么会这样。比如_weak HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef*RCC_OscInitStruct),这个函数在rcc.c中的函数体里没有代码实现,而在rcc_ex.c中有具体代码实现,不理解,请大神指教看下函数上面的说明,有简单介绍函数的说明用途。 _weak宏表示如果有其他的定义则废弃本定义。
比如在库中有一个定义:_weak void HAL_RCC_OscConfig(),在你自己的.c里面还有一个定义:
void HAL_RCC_OscConfig(),则使用你自己定义的而不是库里的,因为有_weak宏。
如果多个名字相同的只能有一个带有_weak,这就是说同名的定义只能最多有2个。
moyanming2013 发表于 2015-5-26 13:37
_weak宏表示如果有其他的定义则废弃本定义。
比如在库中有一个定义:_weak void HAL_RCC_OscConfig(),在你 ...
非常感谢。 iSine 发表于 2015-5-26 12:16
看下函数上面的说明,有简单介绍函数的说明用途。
同样感谢 2楼正解 路过,看看
这个在“UM1725 User Manual”这个官方文件里面有详细说明,如图:
即_.c文件里是一些通用的驱动C文件,而_ex.c里面是一些外设和模块的扩展驱动文件,包含了个别型号或系列的特定API(驱动),另外,如果新的API文件和默认API在程序中执行有冲突,新的API将覆盖默认API;
学习了。。。。 逍遥李 发表于 2015-5-27 09:48
这个在“UM1725 User Manual”这个官方文件里面有详细说明,如图:
多谢指点
页:
[1]
2