娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年03月29日(星期六)

2020年03月29日 | Stm32用寄存器還是庫函數

發布者:溫柔微笑 來源: eefocus關鍵字:Stm32  寄存器  庫函數 手機看文章 掃描二維碼
隨時隨地手機看文章

首先放幾段網友的觀點


1、我當年初學的時候也糾結過,后來選擇了先學習寄存器操作,后來慢慢的把庫函數也學會了,其實都不難。完全可以兩個都學,只是你現在選一個先下手而已。


建議你先學寄存器操作,然后學庫,以后工作中盡量使用庫。


先學寄存器是因為你從51過渡過來,51也是直接控制寄存器,趁你還沒有忘記怎么操作寄存器的時候趁熱打鐵。


用庫函數用習慣了你會發現自己會越做越快,但是知其然不知其所以然的感覺很糟糕,這時你再去學寄存器會感覺非常繁瑣,完全學不進去。


所以,先學寄存器操作,再學庫函數操作。


兩個都學是必要的,有時候做工業控制的項目有嚴格的實時性要求,你用庫函數會使速度變慢,這時你得用寄存器。其他時候能用庫盡量用庫,開發周期短,可讀性強,易于跟人配合。


寄存器操作就像手動擋汽車,庫函數操作就像自動擋汽車。手動擋會了,自動擋自然也會了。


2、寄存器操作:51就是寄存器操作,你用51需要自己寫驅動。STM32如果不用庫也是跟51一樣直接操作寄存器的。


庫函數操作:STM32的庫已經幫你把驅動寫好了,你要做的只是配置參數,然后使能。


寄存器的優缺點:速度快,但是可讀性差,你要改動配置需要去查芯片手冊。


庫函數的優缺點:速度慢,但是可讀性強,用GPIO_PIN_5這類可讀性強的英文字母,去替代0x0101這類可讀性差的數字。


3、首先,兩個都是C語言。

從51過渡過來的話,就先說寄存器操作。每個MCU都有自己的寄存器,51是功能比較簡單的一種,相應的寄存器也比較少,我們常用的就那么幾個,像P0 P1 SMOD TMOD之類的,這些存在于標準頭文件reg.h里面,因為少,所以大家就直接這么去操作了,每一位對應的意義隨便翻一下手冊就看得到,甚至做幾個小項目就記的很清楚了。所以做51開發的時候大多數都是直接操作寄存器。


到了STM32,原理一樣,也是有自己的寄存器,但是作為一款ARM內核的芯片,功能多了非常多,寄存器自然也就多了很多,STM32的手冊有一千多頁,這時候想去像51那樣記住每個寄存器已經不現實了,所以ST的工程師就給大家提供了庫函數這么一個東西。


這是個神器。


庫函數里面把STM32的所有寄存器用結構體一一對應并且封裝起來,而且提供了基本的配置函數。我們要去操作配置某個外設的時候不需要再去翻眼花繚亂的數據手冊,直接找到庫函數描述拿來就可以用,這樣就能把精力放在邏輯代碼的開發上,而不是去費力的研究一個芯片的外設要怎么配置寄存器才能驅動起來。


簡單講就是這些了,庫函數是為了讓開發者從大量繁瑣的寄存器操作中脫離出來的一個文件包,在使用一個外設的時候讓開發者直接去調用相應的驅動函數而不是自己去翻手冊一個一個配置寄存器。


有人說用庫函數掌握不到芯片的精髓,見仁見智了。熟悉一款芯片是在不斷的開發使用中逐漸了解并掌握的,調試的過程中會遇到很多問題,會要求我們去跟蹤相關寄存器的狀態,在整個框架都已經建立起來的基礎上再去對照手冊做具體到寄存器每一位的分析,代碼對照現象,很快就能積累起來經驗,祝成功。


中心思想:想學得精就從寄存器入手,如果單純是從利用該芯片角度出發,用函數庫。


個人觀點:

ST公司自己的資料也是相當的糾結,參考手冊上講得都是操作寄存器的方法,相比之下固件庫的介紹就非常粗枝大葉。


個人經歷:筆者剛接觸STM32時是跟著淘寶賣家的例程學習的,雖然每個部分都會一點兒,也能應用,但是就學習效果來說,賣家會的我可能會,賣家不會的我肯定不會。

假期從頭開始深入自學32。學習中,以參考手冊為主,手冊中又以架構圖為主,理清整個架構圖后再開始看ST官方庫函數例程。最后,對照著庫函數中寄存器的操作,去回味參考手冊中的寄存器和架構圖,對每個模塊理解更深入。但是這個過程相當耗費時間與精力,任何一個模塊都需要兩整天或者更多的時間。


舉個例子:ADC模塊.


當看完并理解參考手冊中ADC部分后,這個圖看懂也就不成問題了。而用庫函數操作,則會阻斷學習參考手冊的道路,同時雖然會配置簡單的ADC,但對ADC卻無整體的認識。


以下是ADC部分的目錄:


若只是通過庫函數學習,大概能夠配置到11.8之前。而11.8之后的東西,均需要對寄存器的深入了解。


試問:EOC事件是每轉換一個通道就產生,還是所有的都轉換完后產生?DMA與EOC有何聯系?


在掃描模式下,這些問題必須解決。這些對于一個模塊來說,算小問題,然窺一斑而知全貌。整個32的每個部分都有小問題,最后就成了難以跨越的大問題。


總之,如果只是應用32簡單的一些功能可以跳過寄存器,跟著賣家例程配置;若是想使用高級功能,因為參考手冊的原因,寄存器是不可能跨越過去的。而這個過程耗費的精力,將是前者的數倍。筆者認為,這一過程的量變最終應當是會引起質變的。


筆者最近開始學習通用定時器,深感吃力,寫此文已自勉。希望當我出關后,能有一覽眾山小的境界!

關鍵字:Stm32  寄存器  庫函數 引用地址:Stm32用寄存器還是庫函數

上一篇:stm32---輸入捕獲
下一篇:STM32-尋址最大為4G

推薦閱讀

據CNBC北京時間3月29日報道,當地時間星期三在接受媒體采訪時,蘋果CEO蒂姆·庫克(Tim Cook)表示,實際上iPhone很大程度上是在美國制造的。庫克解釋說,iPhone組裝工作是在其他地方完成的,但其“設備和制造”遍及整個美國。美國總統特朗普稱贊蘋果是眾多在美國本土投資的公司之一。蘋果1月份表示,它計劃通過稅收、資本投資和創造工作崗位,未來5年為美...
整理了一個NEC協議的紅外程序,NEC協議,物理環境為F103原子戰艦V3,使用STM32CubeMX生成初始程序。定時器配置72分頻,9999裝載值(10MS) NEC協議:數據格式: 同步碼頭 + 地址碼 +地址反碼 + 按鍵碼 + 按鍵反碼 (LSB先行)同步碼頭:9ms低電平 + 4.5ms高電平連發碼 : 9ms低電平 + 2.5ms高電平邏輯1: 560us + 1680us邏輯...
標注:注意大家一般的得到的STM32程序中的延遲函數delay_ms()中的入口參數值是有限制的,他最大值只能是1864,我之前不知道,程序中一直錯誤地使用它,所以導致延時不準確。//延時nms//注意nms的范圍//SysTick->LOAD為24位寄存器,所以,最大延時為://nms<=0xffffff*8*1000/SYSCLK//SYSCLK單位為Hz,nms單位為ms//對72M條件下,nms<=1864 void delay_ms(u16 ...
華中數控是我國本土6大機器人本體制造商之一,旗下華數機器人是為其專注于工業機器人的子公司。截至2021年,華中數控已形成“9+4”機器人布局,即在佛山、重慶、深圳、東莞、寧波、蘇州、泉州等地設有9家機器人公司,另在佛山、江蘇、泉州、襄陽設有共4個機器人研究院,已成為我國研發高端工業機器人的重要力量。圖片來源:OFweek維科網研發投入是凈利潤11...

史海拾趣

問答坊 | AI 解惑

LM324引腳圖資料與電路應用

LM324引腳圖資料與電路應用   LM324資料: LM324為四運放集成電路,采用14腳雙列直插塑料封裝。,內部有四個運算放大器,有相位補償電路。電路功耗很小,lm324工作電壓范圍寬,可用正電源3~30V,或正負雙電源±1.5V~±15V工作。 ...…

查看全部問答∨

2007中國嵌入式行業工程師調查報告

報告關鍵點: 1、工程師男性化、年輕化 2、團隊協作和學習是關鍵 3、 收入不夠理想 創業是出路 嵌入式系統無疑成為當前最熱門最有發展前途的IT應用領域之一。而主導嵌入式系統設計及創新的工程師們是怎么看 ...…

查看全部問答∨

ATMEGA8535.pdf

ATMEGA8535.pdf中文資料…

查看全部問答∨

一個小問題困惑了我,求高手指點下

您好 我是想從手機的耳機孔取信號,來推動一個單穩態電路   從左往右把門電路分別稱為門1、門2、門3、門4. 門3、門4.組成的單穩態電路,很成功 ,用手指碰門2的輸入端可使單穩態翻轉。   門1組成的放大器,把手機的耳機信號放大后送 ...…

查看全部問答∨

WinCE下如何讀寫通用HID設備

我有一個通用HID設備,主要功能就是和PC機互發數據.我在WinXP下不需要自己編寫驅動直接利用WriteFile()、ReadFile()、CreateFile()和setupapi.dll、HID.dll里的函數就可以完成我的HID設備和PC機進行數據通訊。我現在在WinCE下讀寫該通用HID設備,用C ...…

查看全部問答∨

超大容量的Nand Flash驅動

正準備折騰一個三星4GB/8GB/64GB的Nand Flash到基于S3C2440的WinCE系統上,希望大家多多支持! 請大家多多建言!…

查看全部問答∨

求教一個ftp的連接問題

用PC機可以很輕松的連上公司內部的ftp,寫了一個在WINCE下的ftp代碼,也可以連接ftp,并且下載,但是如果我在下載過程中非正常中斷與ftp的連接以后,我重新運行程序就無法連接上ftp,在用戶驗證那塊一直無法得到服務器的回應信息,一定要等很久才可 ...…

查看全部問答∨

ring3如何調用鍵盤過濾驅動

如題,這個鍵盤過濾驅動里生成了很多設備,這些設備到綁定到了Kdbclass上的設備上,在ring3如何使用這個驅動…

查看全部問答∨

wince平臺搭建

我是wince初學者,在網上看到不同的wince平臺搭建方式,不知道應該選那種,是不是不同開發類型環境不同?“??比如驅動開發是一種環境 其他的就不是了。 請高手指教 假如是做驅動開發,都要什么軟件以及平臺搭建方法,(現在是單個pc環境)。如 ...…

查看全部問答∨

用JTAG連接MSP430出現error

各位大大好,小弟是MSP430的初學者, 我用的是MSP430F1232這塊晶片,JTAG控制器型號是MSPFET-UIF,操作軟件用的是IAR,當小弟complier完將程式programmig進去晶片,出現下面的錯誤(附件),請教各位大大,這是怎樣的問題?應該如何解決?     < ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 华池县| 安陆市| 全南县| 蓝山县| 太和县| 双桥区| 务川| 博白县| 华池县| 乌恰县| 白河县| 唐山市| 徐汇区| 平原县| 准格尔旗| 都昌县| 汶上县| 万宁市| 海兴县| 右玉县| 开原市| 方正县| 德清县| 将乐县| 中牟县| 隆化县| 天气| 阳曲县| 峨山| 府谷县| 萨嘎县| 奉节县| 丰都县| 定远县| 乃东县| 余庆县| 鲁山县| 城步| 彝良县| 资源县| 海伦市|