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

STM32 HAL和标准库,各有什么优劣势  

[复制链接]
zero99 提问时间:2018-2-6 14:37 /
阅读主题, 点击返回1楼
收藏 1 评论49 发布时间:2018-2-6 14:37
49个回答
jjbboox 回答时间:2018-3-1 08:43:33
还是HAL库好用,至少用标准库的时候硬件I2C都很难配出来。
HAL库的话就是小菜一碟。
而且DMA的控制方式也容易多了。
板子粉丝 回答时间:2018-3-1 08:49:55
听大师分析
聪神聪 回答时间:2018-3-1 08:54:20
ldskendy 发表于 2018-2-28 18:26
像UART、TIMER、SDIOMMC我都是直接写中断函数的,不会用官方的的库函数。
除非像DMA、LTDC、USB这种复杂 ...

有道理,我也这么做的
队长shiwo 回答时间:2018-3-1 09:10:26
习惯了标准库后用HAL有点麻烦,标准库操作寄存器的步骤感觉比HAL库少一两步,标准库学习起来更加简单明了,可能这是因为我习惯问题,目前遇到过编译标准库比编译HAL库要快很多,可能编译器问题吧,不过HAL库是更加全面的,而且现在ST是主推HAL库了,新手学习直奔HAL库吧,为以后打算,但是如果是紧急项目还是用标注库稳妥点,安全起见
feiante 回答时间:2018-3-1 10:24:39
       原来主要用的是标准库,也接触了一下HAL库,怎么说呢,本人水平比较差,总是在两种库中徘徊。为什么这么说,首先,原来用惯了标准库,同时标准库退出了那么长时间,网上各种外设的例程基本都全了,查找起来也比较方便。
       HAL库也尝试用了下,对于相对复杂的工作,比如以太网、USB、SD卡、文件系统等,用stm32cube简单配置一下就可以实现功能,确实很快,不需要移植和太多的修改,对于简单的功能,比如I2C,SPI、usart等,就是鼠标点点功能就好,代码自动生成,感觉还是比较爽。
      但是当出现问题需要调试时,HAL库就比较麻烦,封装太深,不像标准库那样容易找到问题点。
      结论就是:不追求新芯片的情况下,还是考虑用标准库。
不来也不去。 回答时间:2019-6-26 14:53:29
最多就用HAL库生成个底层驱动配置,中断什么的还是用寄存器来搞
zxm3165 回答时间:2019-8-16 00:01:57
我是前些年用标准库写过程序,现在又要写32的程序,接触了一下HAL,调试了一段时间,感觉HAL入手快,简单应用快速完成。
但是,写32的一般都有特定的需求,不都是简单应用,尤其对实时性、效率等有要求的应用,感觉HAL很垃圾,我调试一个通信程序,仅一个数据包的接收过程用Receive_IT加回调,不说数据写缓冲区过程与标准库方法没区别,仅仅附加的多次开关中断、各种条件判断等等。。本来不存在的好多东西都加进来了,不仅效率低,而且调试过程中莫名其妙的问题频频出现。
本来单片处理器就是强调效率的,它又不是商用处理器,用来运行庞大操作系统的,搞那么臃肿干嘛。
感觉ST不更新标准库,强推HAL,是一种商业运作模式,对开发者来讲,没什么益处。
个人观点,仅供参考。
oleson 回答时间:2019-8-17 11:20:50
我是从标准转hal库的,发现hal挺好用的
tanic 回答时间:2019-8-17 14:51:49
用HAL库,不过会把串口、spi等简单东西HAL底层修改了用,对于USB,网口啥的直接生成
12345
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版