找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5328|回復(fù): 19
打印 上一主題 下一主題
收起左側(cè)

關(guān)于STM8/STM32庫(kù)函數(shù)與寄存器開(kāi)發(fā)選擇問(wèn)題調(diào)查

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
#
ID:316880 發(fā)表于 2020-3-19 13:27 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
雖然庫(kù)函數(shù)開(kāi)發(fā)簡(jiǎn)單方便,但是聽(tīng)說(shuō)高手都是用寄存器開(kāi)發(fā)不知道有沒(méi)有這樣的人?
單選投票, 共有 82 人參與投票
您所在的用戶(hù)組沒(méi)有投票權(quán)限
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

19#
ID:879809 發(fā)表于 2025-3-28 16:42 | 只看該作者
Hephaestus 發(fā)表于 2021-8-26 18:20
庫(kù)也分什么庫(kù),對(duì)于STM32來(lái)說(shuō),StdPeriph庫(kù)和LL庫(kù)就很不錯(cuò),沒(méi)發(fā)現(xiàn)效率比寄存器低的情況,相反開(kāi)發(fā)效率不知 ...

是滴,我只用標(biāo)準(zhǔn)庫(kù)和LL庫(kù),除非沒(méi)有標(biāo)準(zhǔn)庫(kù)或外設(shè)沒(méi)有LL庫(kù)了采用HAL。
回復(fù)

使用道具 舉報(bào)

18#
ID:446156 發(fā)表于 2025-3-28 16:25 | 只看該作者
初始化用庫(kù),運(yùn)行起來(lái)庫(kù)和寄存器交叉使用
回復(fù)

使用道具 舉報(bào)

17#
ID:1093268 發(fā)表于 2023-11-20 11:59 | 只看該作者
對(duì)于ARM內(nèi)核的32位機(jī),標(biāo)準(zhǔn)庫(kù),HAL庫(kù),LL庫(kù)和寄存器操作,我都在用。我會(huì)根據(jù)項(xiàng)目情況而來(lái)選擇,因?yàn)樗鼈冇懈髯缘膬?yōu)劣勢(shì)。
1. HAL庫(kù)目前用得最多。因?yàn)榇蟛糠猪?xiàng)目多很常規(guī),不會(huì)太壓榨芯片性能。它最大優(yōu)點(diǎn)在于非常方便移植和開(kāi)發(fā)效率。我用芯片牌子非常雜,所以會(huì)考慮移植的問(wèn)題。當(dāng)然它在效率上是有點(diǎn)不如其他,比如一句寄存器操作,它也會(huì)直接搞個(gè)函數(shù)來(lái)調(diào)用,另外會(huì)有很多標(biāo)志的讀寫(xiě)。但只要合理利用,不至于效率稀爛;
2. LL庫(kù)和寄存器操作用得其次。這個(gè)對(duì)于一些對(duì)效率效率有一定要求的,會(huì)用這兩個(gè)。在移植的情況上,LL庫(kù)會(huì)比寄存器操作好一些;
3. 標(biāo)準(zhǔn)庫(kù)用得最少了。一些國(guó)產(chǎn)芯片廠(chǎng)做的庫(kù)只有標(biāo)準(zhǔn)庫(kù)。要么用標(biāo)準(zhǔn)庫(kù),要么用寄存器操作,所以偶爾會(huì)用標(biāo)準(zhǔn)庫(kù)。實(shí)際LL庫(kù)一定程度,更接近底層,LL庫(kù)更像是標(biāo)準(zhǔn)庫(kù)(最古老的庫(kù))的一次優(yōu)化;

PS:有些項(xiàng)目我還會(huì)AL庫(kù),LL庫(kù) ,寄存器操作都一起上。它們雖然是互相獨(dú)立的,但不是互斥的;

它們各有所長(zhǎng),各有所短,沒(méi)有一無(wú)是處的。所以合理利用就好,存在就是合理的。
回復(fù)

使用道具 舉報(bào)

16#
ID:628113 發(fā)表于 2023-10-27 10:26 | 只看該作者
其實(shí) 寄存器 也好,庫(kù)函數(shù)也好, HAL 也好 , 關(guān)鍵就是一個(gè) 【移植】。
如果你只用一個(gè)型號(hào)的MCU , 那么 寄存器,HAL 都很好用。
如果代碼打算移植其他MCU用,那幾乎沒(méi)選擇空間。

ROM極小的MCU可能被迫選寄存器,不在此列。
回復(fù)

使用道具 舉報(bào)

15#
ID:1097455 發(fā)表于 2023-10-27 10:03 | 只看該作者
庫(kù)版本真心沒(méi)有寄存器好用,得改變一個(gè)寄存器位得半天
回復(fù)

使用道具 舉報(bào)

14#
ID:69038 發(fā)表于 2023-10-26 14:21 | 只看該作者
真是吃太多、撐著了。。。
這有什么好調(diào)查的?有人開(kāi)法拉利去買(mǎi)菜,也有人騎共享單車(chē)去買(mǎi)菜,還有人走路去買(mǎi)菜。
工具而已,并沒(méi)有什么優(yōu)劣之分,有差別的只是各人的思維能力強(qiáng)不強(qiáng)、邏輯順溜不順溜。
咋不說(shuō)還有人用匯編在寫(xiě)代碼?知識(shí)爆發(fā)時(shí)代,多少都要了解一點(diǎn),再依項(xiàng)目去選擇。
用庫(kù)函數(shù)是省事,用寄存器也不見(jiàn)的費(fèi)勁,主要看個(gè)人的能力。
且看一段文字:
「凌厲剛猛,無(wú)堅(jiān)不摧,弱冠前以之與河朔群雄爭(zhēng)鋒。」
「紫薇軟劍,三十歲前所用,誤傷義士不祥,悔恨無(wú)已,乃棄之深谷。」
「重劍無(wú)鋒,大巧不工。四十歲前恃之橫行天下!
「四十歲之后不滯于物,草木竹石均可為劍。自此精進(jìn),漸入無(wú)劍勝有劍之境!

當(dāng)前適合自己的才是最好的!

回復(fù)

使用道具 舉報(bào)

13#
ID:1062315 發(fā)表于 2023-4-10 15:26 | 只看該作者
現(xiàn)在就在學(xué),我覺(jué)得用庫(kù)比寄存器好得多,程序不用死等待,節(jié)省時(shí)間和提高單片機(jī)運(yùn)行效率
回復(fù)

使用道具 舉報(bào)

12#
ID:190832 發(fā)表于 2023-4-10 14:34 | 只看該作者
Hephaestus 發(fā)表于 2021-8-26 18:20
庫(kù)也分什么庫(kù),對(duì)于STM32來(lái)說(shuō),StdPeriph庫(kù)和LL庫(kù)就很不錯(cuò),沒(méi)發(fā)現(xiàn)效率比寄存器低的情況,相反開(kāi)發(fā)效率不知 ...

是滴,我只用標(biāo)準(zhǔn)庫(kù)和LL庫(kù),除非沒(méi)有標(biāo)準(zhǔn)庫(kù)或外設(shè)沒(méi)有LL庫(kù)了采用HAL
回復(fù)

使用道具 舉報(bào)

11#
ID:420836 發(fā)表于 2023-4-10 10:12 | 只看該作者
這取決于項(xiàng)目和時(shí)間要求。
回復(fù)

使用道具 舉報(bào)

10#
ID:1046594 發(fā)表于 2022-10-12 13:23 | 只看該作者
這問(wèn)題應(yīng)該沒(méi)什麼好糾結(jié)的  從了解STM32的過(guò)程看 寄存器與標(biāo)準(zhǔn)庫(kù)都要學(xué)習(xí) 便於了解MCU的底層原理與良好的編程習(xí)慣,HAL庫(kù)是發(fā)展趨勢(shì),必須要學(xué)的
回復(fù)

使用道具 舉報(bào)

9#
ID:1003077 發(fā)表于 2022-2-19 20:52 | 只看該作者
初學(xué)看寄存器,實(shí)戰(zhàn)用庫(kù)
回復(fù)

使用道具 舉報(bào)

8#
ID:320663 發(fā)表于 2022-2-17 13:29 | 只看該作者
我現(xiàn)在51都用庫(kù)開(kāi)發(fā)了
回復(fù)

使用道具 舉報(bào)

7#
ID:62246 發(fā)表于 2021-10-3 17:10 | 只看該作者
高手,就是不一樣。
回復(fù)

使用道具 舉報(bào)

6#
ID:883242 發(fā)表于 2021-8-26 18:20 | 只看該作者
庫(kù)也分什么庫(kù),對(duì)于STM32來(lái)說(shuō),StdPeriph庫(kù)和LL庫(kù)就很不錯(cuò),沒(méi)發(fā)現(xiàn)效率比寄存器低的情況,相反開(kāi)發(fā)效率不知道比寄存器方式高到哪里去了。HAL庫(kù)就不行,仔細(xì)跟進(jìn)去,發(fā)現(xiàn)寫(xiě)的跟屎一樣,效率極其低下。
回復(fù)

使用道具 舉報(bào)

5#
ID:87166 發(fā)表于 2020-3-27 22:37 | 只看該作者
如果你是新手,好好玩下寄存器,否則后面會(huì)遇到很多問(wèn)題。等你熟練后,用庫(kù),或者用別人的庫(kù)改成自己的庫(kù)。提高效率,看的清爽。
回復(fù)

使用道具 舉報(bào)

地板
ID:89217 發(fā)表于 2020-3-22 23:56 | 只看該作者
開(kāi)發(fā)中 最后不要用while這類(lèi)硬延時(shí)函數(shù),你一用while其他都石化了 只能進(jìn)出中斷,哪里來(lái)的效率?除非只有幾u(yù)s的延時(shí)將就用下可以
回復(fù)

使用道具 舉報(bào)

板凳
ID:599678 發(fā)表于 2020-3-20 12:09 | 只看該作者
相反經(jīng)常遇到一些學(xué)生或新來(lái)的過(guò)分強(qiáng)調(diào)寄存器的高效性,自覺(jué)地看了一下原子的寄存器就厲害了也要用寄存器?戳怂麄儗(xiě)的代碼簡(jiǎn)直不忍直視,這里延時(shí)那里while的,就一個(gè)串口發(fā)送函數(shù)竟然要等所有的數(shù)據(jù)發(fā)送完了才結(jié)束才能進(jìn)行下一個(gè)操作,再或者就是寄存器+ucos操作的真不知該怎么噴。
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:599678 發(fā)表于 2020-3-20 11:28 | 只看該作者
從來(lái)沒(méi)有聽(tīng)過(guò)高手都是用寄存器開(kāi)發(fā)。但是我周?chē)J(rèn)識(shí)的搞開(kāi)發(fā)的基本上都是把底層操作封裝起來(lái),通過(guò)函數(shù)指針交由上層決定。比如對(duì)于串口的操作,應(yīng)用層只需要一個(gè)注冊(cè)函數(shù)接口,執(zhí)行功能打開(kāi)串口/接收數(shù)據(jù)回調(diào)函數(shù)/發(fā)送完成回調(diào)函數(shù)。整個(gè)項(xiàng)目分為外圍硬件、平臺(tái)、框架、上層應(yīng)用。思路清晰條理分明。
回復(fù)

使用道具 舉報(bào)

樓主
ID:711971 發(fā)表于 2020-3-20 01:07 | 只看該作者
一般看情況,MCU挖掘到極限,需要使用寄存器
注重開(kāi)發(fā)效率,使用庫(kù)函數(shù)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表