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

大家都是怎么学HAL库函数的啊?  

[复制链接]
星辰一方 提问时间:2015-2-14 20:47 /
阅读主题, 点击返回1楼
1 收藏 5 评论66 发布时间:2015-2-14 20:47
66个回答
欣辰天下 回答时间:2016-7-1 22:46:31
还要会英语啊,,,,
chsong9 回答时间:2016-8-8 11:53:47
也在学习这个新的库
chsong9 回答时间:2016-8-8 11:54:35
刚刚接触,也在想知道它的运行结构。
乾坤@浪子 回答时间:2016-8-8 13:47:39
什么文档?、
Dylan疾风闪电 回答时间:2016-8-8 13:59:32
坐等官方教程出台。
主要是资源不够,对于库不熟悉,需要详细的库的说明文档。
woodrowwang 回答时间:2016-8-11 05:35:58
不错,很好的文档
任风吹吹 回答时间:2016-8-11 11:52:33
本帖最后由 任风吹吹 于 2016-8-11 11:57 编辑

标准库是标准的C语言思想,即提供外设接口,应用调用对应的接口就可以了,而HAL向面向对象的思想靠拢,学过C++的人更容易理解,HAL更抽象化,也提供接口,但基本上接口的第一个参数都是指向设备句柄,这个设备句柄指的就是这个外设控制块的指针,懂C++的人都比较好理解,倒是那些一直习惯了C语言这种流程式语言的人一时在思想上不容易转化,有时候老是会问,为什么这么设计?这样设计有什么好处?好处当然是有,应该是更加抽象化了,掌握到关键时可以不必过多了解底层的工作过程也可以写应用。缺点是底层增加了处理的复杂度,可能生成的代码量和执行效率相对来说可能会下降些,在对于小容量如F0系列时,这个可能比较敏感,但若是F4以上的话基本可以忽略,这个就可以自己看着办了。这里不妨说一下,百闻不如一试,到底增加了多少代码量,自己动手去比较一下不就知道了,说不准压根就没增加多少这都是可能的,万事不是绝对的。

此外,还有最最重要的一点就是:
ST官方在极力推广HAL库,目前已经出了STM32CubeMx软件,可以从图形化直接生成初始化代码,进一步让应用与底层分离,这让用户在不必过多了解外设细节的情况下使用外设成为现实。

以上,萝卜白菜,各有所爱,大家看着办!
任风吹吹 回答时间:2016-8-11 12:20:33
本帖最后由 任风吹吹 于 2016-8-11 12:26 编辑
任风吹吹 发表于 2016-8-11 11:52
标准库是标准的C语言思想,即提供外设接口,应用调用对应的接口就可以了,而HAL向面向对象的思想靠拢,学过 ...

HAL库是将数据整合了下,变成句柄,但数据和功能还是分离的,数据与功能的关联点是在接口函数的第一个参数一般为句柄,然后再就是中断回调到weak函数,用户需要用到这个回调时就自己重载这个回调函数,这个就是HAL的一般情况,但严格来说,这还不是真正的面向对象,真正的面向对象比如C++,是将数据与功能一起封装在对象内,weak就相当于虚函数,在实例化时需要重载。OOP的操作都是以对象开头的,而HAL还是以接口开始,只不过在第一个参数传入句柄数据而已,两者结果一样,但后者HAL还是数据与功能分离的,不像对象,HAL严格来说,相比原来的标准库应该算是半对象化了。

以上是个人理解,非喜勿喷!
beebird 回答时间:2016-9-18 22:16:36
楼上讲的很好
忘记一切Q 回答时间:2016-9-23 13:31:00
听说不大好
anywill 回答时间:2016-10-2 04:22:52
53楼讲的很好,个人觉得mbed才是王道
mark0668 回答时间:2016-10-2 11:20:00
谢谢分享
mark0668 回答时间:2016-10-2 11:20:18
谢谢分享
myfocus-2048857 回答时间:2016-10-11 10:05:45
pure english ! 楼主 牛人 !

我一般的习惯是:
先尽量 找 分中文的看,碰到 不解的地方,在参考 原著...
轻描&淡写 回答时间:2016-11-7 12:01:16
先谢谢楼主的文件~

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版