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

关于HAL库

[复制链接]
黑皮男 提问时间:2015-5-26 11:43 /
对于这个库有些地方不是很清楚,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中有具体代码实现,不理解,请大神指教
收藏 评论12 发布时间:2015-5-26 11:43

举报

12个回答
iSine 回答时间:2015-5-26 12:16:58
看下函数上面的说明,有简单介绍函数的说明用途。
moyanming2013 回答时间:2015-5-26 13:37:03
_weak宏表示如果有其他的定义则废弃本定义。
比如在库中有一个定义:_weak void HAL_RCC_OscConfig(),在你自己的.c里面还有一个定义:
void HAL_RCC_OscConfig(),则使用你自己定义的而不是库里的,因为有_weak宏。
如果多个名字相同的只能有一个带有_weak,这就是说同名的定义只能最多有2个。
黑皮男 回答时间:2015-5-26 15:20:41
moyanming2013 发表于 2015-5-26 13:37
_weak宏表示如果有其他的定义则废弃本定义。
比如在库中有一个定义:_weak void HAL_RCC_OscConfig(),在你 ...

非常感谢。
黑皮男 回答时间:2015-5-26 15:20:56
iSine 发表于 2015-5-26 12:16
看下函数上面的说明,有简单介绍函数的说明用途。

同样感谢
为什么是EEFOCUS小白 回答时间:2015-5-27 09:12:26
2楼正解
zzhere2007 回答时间:2015-5-27 09:38:18
路过,看看
逍遥李 回答时间:2015-5-27 09:48:39
这个在“UM1725 User Manual”这个官方文件里面有详细说明,如图:
002.png
001.png
即_.c文件里是一些通用的驱动C文件,而_ex.c里面是一些外设和模块的扩展驱动文件,包含了个别型号或系列的特定API(驱动),另外,如果新的API文件和默认API在程序中执行有冲突,新的API将覆盖默认API;

stary666 回答时间:2015-5-27 09:55:51
学习了。。。。
黑皮男 回答时间:2015-5-27 11:47:28
逍遥李 发表于 2015-5-27 09:48
这个在“UM1725 User Manual”这个官方文件里面有详细说明,如图:

多谢指点
creep 回答时间:2015-5-27 11:49:16
难道现在F303没有之前的那些标准库了吗,这转变一时习惯不了啊
three! 回答时间:2015-5-27 12:08:46
没试过~~
黑皮男 回答时间:2015-5-27 12:19:02
creep 发表于 2015-5-27 11:49
难道现在F303没有之前的那些标准库了吗,这转变一时习惯不了啊

有标准库,不过这个HAL库用着也不错

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版