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

第三期:聊聊STM32CubeMX及HAL库的使用情况、技巧等

[复制链接]
dsjsjf 提问时间:2018-11-5 08:50 /
阅读主题, 点击返回1楼
收藏 评论31 发布时间:2018-11-5 08:50
31个回答
1209实验室@ujn 回答时间:2018-11-5 16:46:34
HAL观望之中,实际使用觉得并不灵活,无法满足需求,需要按照HAL的结构重新构建底层函数,结果还是太麻烦了,而且相当臃肿。

点评

建议新项目中使用。  发表于 2018-11-5 17:10
tanic 回答时间:2018-11-5 17:14:25
HAL没啥毛病,cubemax把细节都隐藏了,一旦出了问题,就不知道咋搞。推荐有STD库的用STD库。没有的用HAL库,手动移植。弄清楚流程,出了问题才知道怎么解决。总之,鸡蛋不能放在一个篮子里,要用工具,不要被工具用。
一般来说基本外设的初始化配置,手动配置出了问题在与cubemax配置的比较,找问题。
像什么LWIP,GUI,FATFS等中间件,能自己移植就自己移植,USB就算了,USB包含太多子协议,实在复杂,这个建议直接生成,然后再去改描述符啥的,一般直接生成的很难用到实际项目中。

点评

是的,我们要会使用工具,用它来使得开发更便捷。所以必须要了解它,才能合理的运用。知其然也必须知其所以然。更重要的是学习它的优点。  发表于 2018-11-5 18:56
tanic 回答时间:2018-11-5 17:28:48
我向来是不惮于接触新事物的,cubemax也做了几个项目了,不过只用到了基本外设,加一个freertos,
一句话串口不好用,大部分条件下,项目不需要那么花哨。比如串口噪声,串口溢出等错误标志位啥的能搞上的都搞上了,没必要啊。这样搞得结果就是用户必须要写一个出错了的回调函数,来错误处理,否则串口死掉,死掉的原因是HAL库串口空闲繁忙保护机制。然而错误处理没有demo,全靠摸索。不做错误处理的只要一直正常也能用,一旦出错就死了,会给人造成不稳定的假象。一个简单的串口尚且如此,不知道其他驱动有没有类似的问题。太过复杂的架构,解决问题的办法不好找,对于初级工程师来说是不可能完成的任务。总的来说HAL库任然需要实际项目的考验,以及应用案例的支持。
完--撒花鼓掌

点评

学习的路很长,接触任何一种新事物,都是学习的过程。HAL库还是考虑的很全面,有很大一部分功能在我们的项目中用不到,这方面是需要弄清楚的。  发表于 2018-11-5 19:07
a421701136 回答时间:2018-11-6 08:51:01
我刚开始也很抗拒HAL库,但是在新项目中使用了HAL,还是觉得很方便。免掉了所需外设和时钟的初始化配置,只需要把精力集中在功能需求上。而且各种stm32系列的芯片代码都是通用的,很方便就移植过来。  大家都很担心HAL有bug,而且因为层层嵌套不好查找。我觉得不用担心,一方面我没有遇到过。另外一方面,HAL已经出来那么久了,就算有bug也有人反馈了。我觉得就跟使用操作系统一样的,操作系统也有bug,而且操作系统也会损耗一部分cpu性能和内存,但是开发起来方便快捷。

点评

其实是没必要害怕BUG的,想想ST的工程师总比我的水平高吧,而且人家是一个团队完成的库,我只有学习的份。需要做的只有理解它,运用它。  发表于 2018-11-6 09:05
baobo 回答时间:2018-11-6 09:45:53
学习了,谢谢。
stm32学习hpdj 回答时间:2018-11-6 13:30:37
路过学习一下!
rgbgirl 回答时间:2019-11-12 11:16:15
初学HAL中,感觉还是有很多的内容要理清楚,读程序不容易呀~
12

所属标签

相似问题

官网相关资源

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