找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4193|回复: 17
打印 上一主题 下一主题
收起左侧

关于STM8/STM32库函数与寄存器开发选择问题调查

  [复制链接]
跳转到指定楼层
楼主
ID:316880 发表于 2020-3-19 13:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
虽然库函数开发简单方便,但是听说高手都是用寄存器开发不知道有没有这样的人?
单选投票, 共有 79 人参与投票
您所在的用户组没有投票权限
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:711971 发表于 2020-3-20 01:07 | 只看该作者
一般看情况,MCU挖掘到极限,需要使用寄存器
注重开发效率,使用库函数
回复

使用道具 举报

板凳
ID:599678 发表于 2020-3-20 11:28 | 只看该作者
从来没有听过高手都是用寄存器开发。但是我周围认识的搞开发的基本上都是把底层操作封装起来,通过函数指针交由上层决定。比如对于串口的操作,应用层只需要一个注册函数接口,执行功能打开串口/接收数据回调函数/发送完成回调函数。整个项目分为外围硬件、平台、框架、上层应用。思路清晰条理分明。
回复

使用道具 举报

地板
ID:599678 发表于 2020-3-20 12:09 | 只看该作者
相反经常遇到一些学生或新来的过分强调寄存器的高效性,自觉地看了一下原子的寄存器就厉害了也要用寄存器。看了他们写的代码简直不忍直视,这里延时那里while的,就一个串口发送函数竟然要等所有的数据发送完了才结束才能进行下一个操作,再或者就是寄存器+ucos操作的真不知该怎么喷。
回复

使用道具 举报

5#
ID:89217 发表于 2020-3-22 23:56 | 只看该作者
开发中 最后不要用while这类硬延时函数,你一用while其他都石化了 只能进出中断,哪里来的效率?除非只有几us的延时将就用下可以
回复

使用道具 举报

6#
ID:87166 发表于 2020-3-27 22:37 | 只看该作者
如果你是新手,好好玩下寄存器,否则后面会遇到很多问题。等你熟练后,用库,或者用别人的库改成自己的库。提高效率,看的清爽。
回复

使用道具 举报

7#
ID:883242 发表于 2021-8-26 18:20 | 只看该作者
库也分什么库,对于STM32来说,StdPeriph库和LL库就很不错,没发现效率比寄存器低的情况,相反开发效率不知道比寄存器方式高到哪里去了。HAL库就不行,仔细跟进去,发现写的跟屎一样,效率极其低下。
回复

使用道具 举报

8#
ID:62246 发表于 2021-10-3 17:10 | 只看该作者
高手,就是不一样。
回复

使用道具 举报

9#
ID:320663 发表于 2022-2-17 13:29 | 只看该作者
我现在51都用库开发了
回复

使用道具 举报

10#
ID:1003077 发表于 2022-2-19 20:52 | 只看该作者
初学看寄存器,实战用库
回复

使用道具 举报

11#
ID:1046594 发表于 2022-10-12 13:23 | 只看该作者
這問題應該沒什麼好糾結的  從了解STM32的過程看 寄存器與標準庫都要學習 便於了解MCU的底層原理與良好的編程習慣,HAL庫是發展趨勢,必須要學的
回复

使用道具 举报

12#
ID:420836 发表于 2023-4-10 10:12 | 只看该作者
这取决于项目和时间要求。
回复

使用道具 举报

13#
ID:190832 发表于 2023-4-10 14:34 | 只看该作者
Hephaestus 发表于 2021-8-26 18:20
库也分什么库,对于STM32来说,StdPeriph库和LL库就很不错,没发现效率比寄存器低的情况,相反开发效率不知 ...

是滴,我只用标准库和LL库,除非没有标准库或外设没有LL库了采用HAL
回复

使用道具 举报

14#
ID:1062315 发表于 2023-4-10 15:26 | 只看该作者
现在就在学,我觉得用库比寄存器好得多,程序不用死等待,节省时间和提高单片机运行效率
回复

使用道具 举报

15#
ID:69038 发表于 2023-10-26 14:21 | 只看该作者
真是吃太多、撑着了。。。
这有什么好调查的?有人开法拉利去买菜,也有人骑共享单车去买菜,还有人走路去买菜。
工具而已,并没有什么优劣之分,有差别的只是各人的思维能力强不强、逻辑顺溜不顺溜。
咋不说还有人用汇编在写代码?知识爆发时代,多少都要了解一点,再依项目去选择。
用库函数是省事,用寄存器也不见的费劲,主要看个人的能力。
且看一段文字:
「凌厉刚猛,无坚不摧,弱冠前以之与河朔群雄争锋。」
「紫薇软剑,三十岁前所用,误伤义士不祥,悔恨无已,乃弃之深谷。」
「重剑无锋,大巧不工。四十岁前恃之横行天下。」
「四十岁之后不滞于物,草木竹石均可为剑。自此精进,渐入无剑胜有剑之境。」

当前适合自己的才是最好的!

回复

使用道具 举报

16#
ID:1097455 发表于 2023-10-27 10:03 | 只看该作者
库版本真心没有寄存器好用,得改变一个寄存器位得半天
回复

使用道具 举报

17#
ID:628113 发表于 2023-10-27 10:26 | 只看该作者
其实 寄存器 也好,库函数也好, HAL 也好 , 关键就是一个 【移植】。
如果你只用一个型号的MCU , 那么 寄存器,HAL 都很好用。
如果代码打算移植其他MCU用,那几乎没选择空间。

ROM极小的MCU可能被迫选寄存器,不在此列。
回复

使用道具 举报

18#
ID:1093268 发表于 2023-11-20 11:59 | 只看该作者
对于ARM内核的32位机,标准库,HAL库,LL库和寄存器操作,我都在用。我会根据项目情况而来选择,因为它们有各自的优劣势。
1. HAL库目前用得最多。因为大部分项目多很常规,不会太压榨芯片性能。它最大优点在于非常方便移植和开发效率。我用芯片牌子非常杂,所以会考虑移植的问题。当然它在效率上是有点不如其他,比如一句寄存器操作,它也会直接搞个函数来调用,另外会有很多标志的读写。但只要合理利用,不至于效率稀烂;
2. LL库和寄存器操作用得其次。这个对于一些对效率效率有一定要求的,会用这两个。在移植的情况上,LL库会比寄存器操作好一些;
3. 标准库用得最少了。一些国产芯片厂做的库只有标准库。要么用标准库,要么用寄存器操作,所以偶尔会用标准库。实际LL库一定程度,更接近底层,LL库更像是标准库(最古老的库)的一次优化;

PS:有些项目我还会AL库,LL库 ,寄存器操作都一起上。它们虽然是互相独立的,但不是互斥的;

它们各有所长,各有所短,没有一无是处的。所以合理利用就好,存在就是合理的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表