① stm32單片機的core_cm3.h庫函數是干什麼的啊
STM32的內核是ARM CORTEX-M3,這個core_cm3.h包含的是一些內核相關的函數和宏定義,例如核內寄存器定義、部分核內外設的地址等等,其對應的是core_cm3.c文件。初學可以不管他,只要把它包含進工程里就行了,這里都是非常底層的函數,上層的一些函數直接調用它們了。如果對CORTEX-M3內核有興趣或者基礎較高,想深入了解這些函數,可以仔細研讀一下。。
希望對你有幫助~~
② stm32基於庫函數的編程思路
雖然應用程序各種各樣,但所使用的資源,視頻教程基本上都教了,也就是晶元的硬體資源都學會了的話,自然就知道該去查什麼例子和函數來實現自己的程序。所以,你必須反復學習工作要用到的硬體資源。聽、讀、寫,都要反復練習。聽即看視頻,讀即讀資料和書,寫,當然就是照著例子寫代碼,剛開始,如果實在不會寫,哪怕照抄都要動手去敲代碼。看十遍不如親自敲一遍,邊敲邊思考,想想人家為什麼你們寫,想不通,就跳過,久而久之,遲早自己能想通的。
③ stm32中什麼叫基於自編庫函數建立工程,什麼叫基於固件庫建立工程呢區別是什麼呢
簡單說:
固件庫又叫做firmware lib,ST官方做了兩套,早期是標准庫,後面是HAL庫,其實就是程序框架。
單片機開發一般包括:驅動開發 + 應用程序
驅動開發就是控制單片機片內外設,如存儲、通信介面(uart spi iic等)、定時器等
應用程序就是用戶邏輯代碼。
ST官方提供的庫主要是幫我們簡化編程,抽象底層操作,使我們更專注用戶程序開發。比如:
我們要控制GPIO,那麼我們可能需要去查看寄存器、配置時鍾使能、上下拉、驅動能力、輸入輸出、中斷方式、管教復用等,這些很瑣碎很容易出錯,但是使用庫函數調用函數就OK了。
還有一個巨大的好處是:程序移植性更好!!!
ST很良心,當然大牛也可以自己實現自己的庫。
④ 誰來分享下STM32的程序框架
首先我對框架的看法:框架是為了方便我們程序員開發 減少代碼量,及代碼質量的工具 。框架(Framework)是整個或部分系統的可重用設計,表現為一組抽象構件及構件實例間交互的方法。
也就說,程序框架更多的從代碼可用性角度來定義,對於應用層,這樣的概念很多,比如java開發框架,net框架等等,在單片機裡面,我認為:可能更多的框架應該是面向硬體操作行為,即做好單片機基本硬體模塊的操作函數,封裝成一個API函數,然後再你main route裡面使用這些API函數的介面,建立與外界的聯系。
我一般的做法是:
1.做好基本數據結構的重定義,比如typedef一些基本數據類型,使之能夠通用。。
2.做好所有埠的映射,因為單片機的管腳是很多是復用的,做好這些cross-pin,對於復用很有幫助。。
3.做好涉及部件介面的操作函數介面,比如IIC匯流排,做好IIC匯流排操作的代碼,包括read,write函數;
4.做好基本的通用函數介面,比如延時功能,串口調試功能,這些功能介面盡量做到與通用匹配,比如使用delay_ms(),sprintf等等;
5.每一個介面對應一個C文件和H文件,這樣組織框架很容易,而且也容易尋找不同介麵包含在那些文件裡面。。
其他的,就是自己的一些開發習慣了吧。。