標題: 關于STM8/STM32庫函數(shù)與寄存器開發(fā)選擇問題調(diào)查 [打印本頁]
作者: 余生不負 時間: 2020-3-19 13:27
標題: 關于STM8/STM32庫函數(shù)與寄存器開發(fā)選擇問題調(diào)查
雖然庫函數(shù)開發(fā)簡單方便,但是聽說高手都是用寄存器開發(fā)不知道有沒有這樣的人?
作者: jamiliang 時間: 2020-3-20 01:07
一般看情況,MCU挖掘到極限,需要使用寄存器
注重開發(fā)效率,使用庫函數(shù)
作者: hubj627 時間: 2020-3-20 11:28
從來沒有聽過高手都是用寄存器開發(fā)。但是我周圍認識的搞開發(fā)的基本上都是把底層操作封裝起來,通過函數(shù)指針交由上層決定。比如對于串口的操作,應用層只需要一個注冊函數(shù)接口,執(zhí)行功能打開串口/接收數(shù)據(jù)回調(diào)函數(shù)/發(fā)送完成回調(diào)函數(shù)。整個項目分為外圍硬件、平臺、框架、上層應用。思路清晰條理分明。
作者: hubj627 時間: 2020-3-20 12:09
相反經(jīng)常遇到一些學生或新來的過分強調(diào)寄存器的高效性,自覺地看了一下原子的寄存器就厲害了也要用寄存器?戳怂麄儗懙拇a簡直不忍直視,這里延時那里while的,就一個串口發(fā)送函數(shù)竟然要等所有的數(shù)據(jù)發(fā)送完了才結束才能進行下一個操作,再或者就是寄存器+ucos操作的真不知該怎么噴。
作者: 羅程峰8200 時間: 2020-3-22 23:56
開發(fā)中 最后不要用while這類硬延時函數(shù),你一用while其他都石化了 只能進出中斷,哪里來的效率?除非只有幾us的延時將就用下可以
作者: 181206506 時間: 2020-3-27 22:37
如果你是新手,好好玩下寄存器,否則后面會遇到很多問題。等你熟練后,用庫,或者用別人的庫改成自己的庫。提高效率,看的清爽。
作者: Hephaestus 時間: 2021-8-26 18:20
庫也分什么庫,對于STM32來說,StdPeriph庫和LL庫就很不錯,沒發(fā)現(xiàn)效率比寄存器低的情況,相反開發(fā)效率不知道比寄存器方式高到哪里去了。HAL庫就不行,仔細跟進去,發(fā)現(xiàn)寫的跟屎一樣,效率極其低下。
作者: bbk2000 時間: 2021-10-3 17:10
高手,就是不一樣。
作者: hqsmpp 時間: 2022-2-17 13:29
我現(xiàn)在51都用庫開發(fā)了
作者: Hjc12345678 時間: 2022-2-19 20:52
初學看寄存器,實戰(zhàn)用庫
作者: nanhaixiaodeng 時間: 2022-10-12 13:23
這問題應該沒什麼好糾結的 從了解STM32的過程看 寄存器與標準庫都要學習 便於了解MCU的底層原理與良好的編程習慣,HAL庫是發(fā)展趨勢,必須要學的
作者: TTQ001 時間: 2023-4-10 10:12
這取決于項目和時間要求。
作者: hange_v 時間: 2023-4-10 14:34
是滴,我只用標準庫和LL庫,除非沒有標準庫或外設沒有LL庫了采用HAL
作者: 草本之處 時間: 2023-4-10 15:26
現(xiàn)在就在學,我覺得用庫比寄存器好得多,程序不用死等待,節(jié)省時間和提高單片機運行效率
作者: zhuls 時間: 2023-10-26 14:21
真是吃太多、撐著了。。。
這有什么好調(diào)查的?有人開法拉利去買菜,也有人騎共享單車去買菜,還有人走路去買菜。
工具而已,并沒有什么優(yōu)劣之分,有差別的只是各人的思維能力強不強、邏輯順溜不順溜。
咋不說還有人用匯編在寫代碼?知識爆發(fā)時代,多少都要了解一點,再依項目去選擇。
用庫函數(shù)是省事,用寄存器也不見的費勁,主要看個人的能力。
且看一段文字:「凌厲剛猛,無堅不摧,弱冠前以之與河朔群雄爭鋒。」
「紫薇軟劍,三十歲前所用,誤傷義士不祥,悔恨無已,乃棄之深谷!
「重劍無鋒,大巧不工。四十歲前恃之橫行天下!
「四十歲之后不滯于物,草木竹石均可為劍。自此精進,漸入無劍勝有劍之境!
當前適合自己的才是最好的!
作者: 圣博朗西斯 時間: 2023-10-27 10:03
庫版本真心沒有寄存器好用,得改變一個寄存器位得半天
作者: ppcbug 時間: 2023-10-27 10:26
其實 寄存器 也好,庫函數(shù)也好, HAL 也好 , 關鍵就是一個 【移植】。
如果你只用一個型號的MCU , 那么 寄存器,HAL 都很好用。
如果代碼打算移植其他MCU用,那幾乎沒選擇空間。
ROM極小的MCU可能被迫選寄存器,不在此列。
作者: 哦豁~ 時間: 2023-11-20 11:59
對于ARM內(nèi)核的32位機,標準庫,HAL庫,LL庫和寄存器操作,我都在用。我會根據(jù)項目情況而來選擇,因為它們有各自的優(yōu)劣勢。
1. HAL庫目前用得最多。因為大部分項目多很常規(guī),不會太壓榨芯片性能。它最大優(yōu)點在于非常方便移植和開發(fā)效率。我用芯片牌子非常雜,所以會考慮移植的問題。當然它在效率上是有點不如其他,比如一句寄存器操作,它也會直接搞個函數(shù)來調(diào)用,另外會有很多標志的讀寫。但只要合理利用,不至于效率稀爛;
2. LL庫和寄存器操作用得其次。這個對于一些對效率效率有一定要求的,會用這兩個。在移植的情況上,LL庫會比寄存器操作好一些;
3. 標準庫用得最少了。一些國產(chǎn)芯片廠做的庫只有標準庫。要么用標準庫,要么用寄存器操作,所以偶爾會用標準庫。實際LL庫一定程度,更接近底層,LL庫更像是標準庫(最古老的庫)的一次優(yōu)化;
PS:有些項目我還會AL庫,LL庫 ,寄存器操作都一起上。它們雖然是互相獨立的,但不是互斥的;
它們各有所長,各有所短,沒有一無是處的。所以合理利用就好,存在就是合理的。
作者: qinlu123 時間: 2025-3-28 16:25
初始化用庫,運行起來庫和寄存器交叉使用
作者: rundstedt 時間: 2025-3-28 16:42
是滴,我只用標準庫和LL庫,除非沒有標準庫或外設沒有LL庫了采用HAL。
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |