[经验] 求ST的hal库严谨点!!!

RCSN   2019-2-24 22:41 楼主
嗯,楼主在项目上确实用ST的hal库,新型号没办法自己造轮子,只能被强奸地用着。不说它辣鸡不辣鸡,在cubemx可以自动生成代码这个前提下,确实方便了很多开发者。
最近DIY在调试STM32H7的DCMI接口,我偶然想用hal的查询中断相关标志位,嗯,hal的常见写法就是__HAL_xxxx_GET_FLAG(__HANDLE__, __FLAG__)。
找了下是个__HAL_DCMI_GET_FLAG,我只是想知道DCMI捕获到一帧完成标志,也就是如下:
11.png
   然后特么的给我报错个,RIS和MIS这个成员不存在。
    333.png
    4444.png
  看了下手册确实是有这个寄存器
5555.png

  翻看了下定义部分,特喵的果然是随意的,给我后面加了个"R"。
   6666.png

  且不说逻辑问题,这种不谨慎的命名方式,假设是Lib形式,得坑死多少个开发者。难不成每个开发者都得去改库得操作才行?


1084534438 欢迎交流  [加油,一切皆有可能]

回复评论 (8)

这个确切说不算是 HAL 库的问题。因为 stm32h743xx.h 不属于 HAL 库的部分。
根源在于头文件里定义的结构成员和手册上寄存器的名称不一致,这类问题我也遇到过(我一直是自己写代码操作寄存器来用),没事,自己修订一下头文件就好了
你这个例子是 HAL 库用的名称又和手册一致,便和头文件不一致,所以编译不过。不同部分之间开发的用了不同的名称…… 文档管理的bug
点赞  2019-2-25 07:52
引用: cruelfox 发表于 2019-2-25 07:52
这个确切说不算是 HAL 库的问题。因为 stm32h743xx.h 不属于 HAL 库的部分。
根源在于头文件里定义的结构 ...

你说的这个头文件准确来说确实不属于hal范围内,应该归类到cmsis上。这个修改并不难,问题也好找。关键是,这些我是使用cubemx生成的,这个细节的bug确实不该出现,而且看来也不单我一个人反馈过
点赞  2019-2-25 09:00
引用: cruelfox 发表于 2019-2-25 07:52
这个确切说不算是 HAL 库的问题。因为 stm32h743xx.h 不属于 HAL 库的部分。
根源在于头文件里定义的结构 ...

其实还是ST自身的问题,别的寄存器都是带R结尾表示,就这两个取消了,这不是自己命名的不规范吗
点赞  2019-2-25 09:07
ST的库文件确实不太规范,只能悠着点用,然后,写的多了把自己的模块也编译成库
专注智能产品的研究与开发,专注于电子电路的生产与制造……QQ:2912615383,电子爱好者群: void
点赞  2019-2-25 09:36
引用: cruelfox 发表于 2019-2-25 07:52
这个确切说不算是 HAL 库的问题。因为 stm32h743xx.h 不属于 HAL 库的部分。
根源在于头文件里定义的结构 ...

我再看了下相关文档以及qwerghf的意思,其实还是ST自身的问题,stm32h743.h虽然归类到cmsis,但是其所在目录device还是由ST提供。加之我看了手册,基本寄存器都是带了R(也就是reg)。而这两个寄存器不带R,这还是自身hal以及文档管理问题
1084534438 欢迎交流  [加油,一切皆有可能]
点赞  2019-2-25 09:43
没试过hal的,我一直用以前库的方式,从头写。。

主要是懒,用的还是103呢,,,
坐而言不如起而行
点赞  2019-2-25 09:47
其实我2008年底的时候就想用STM32的单片机,那时候有朋友说ST的库如何好用(主要是这哥们就会用个GPIO控制些开关量,也就顶多弄个串口,连ADC都用不上),禁不住诱惑就换成STM32F103了,就是因为ST的I2C老出问题,而且他家的库函数的说明特别的乱,也没有什么规整的系统框架,就放弃了stm32,选用nxp的lpc产品了。不是说他家的芯片怎么不好。主要是产品出问题了会损失客户的,尤其是现在多数都是后付款的风险高。所以建议ST公司在这方面多费点心。期待强大的ST公司能更亲民!
点赞  2019-2-25 10:37
要不考虑一下国产的单片机,灵动微电子单片机MM32F103是可以兼容替换STM32F103的,技术支持保证到位,提供开发板测试~
存储芯片/MCU/SRAM/PSRAM/DDR/FLASH/MRAM。web.www.sramsun.com  QQ3161422826 TEL:13751192923
点赞  2019-2-25 10:52
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复