為什麼我學了幾天 STM32 感覺一臉茫然?

時間 2021-05-07 07:17:19

1樓:purewater1

C語言學好了嗎,這才是最關鍵的,現在有hal庫和cubemx,基本就是純軟體程式設計了,你就理解為用C語言去操作微控制器的各個引腳就行了,就這麼回事。之後外設和時鐘樹慢慢學,這個很複雜,不過積累積累就會了。

2樓:大漠涼茶

1.自學茫然的話,建議報個班,節約時間,見效也快!

2.已經在有老師授課的課程學習中茫然的話,那是時間沒到!學問學問,邊學邊問!

3. 最後,興趣愛好很重要

3樓:

STM32 -涉及軟體和硬體,你C已經學到指正了,所以不是軟體問題,那我認為大概率就是硬體不了解。

你不懂暫存器,不懂時鐘樹,不太懂IO的模式。所以你缺的應該是微機原理。。。

4樓:893070

換個角度思考問題,對基本電路要有一定的了解。不要看庫函式版本。邊看要邊寫。學微控制器的秘訣就是多練。自己能夠徒手點亮發光二極體就算入門了。

5樓:逆襲路上

我沒學過stm32,但是我學過結他。你彈幾天吉他你也會茫然,手指按的疼,和弦換不准,但是只要你保持學習的動力,早晚還不得彈會?有些東西不是一遍就會的,要反覆練習和總結。

你想想王者榮耀你第一次玩個不會玩的英雄能拿五殺?切勿急功近利,看不懂的慢慢看,欲速則不達。

6樓:秦小川fighting

請看此篇回答:答主以親身學習STM32的感受,總結學習32的一些經驗和方法。

7樓:

微控制器說到底只是工具,C也只是手段。如果時間充裕,可以看一些計算機體系結構以及電子技術方面的書籍。不要僅僅關注微控制器,是其背後龐大的體系。(滑稽

8樓:皮卡皮卡丘

如果只是學習的玩,那麼實現一些小專案會比較有趣。如:平衡小車,四軸飛行器,指紋門禁,等等

如果是想學底層原理,那麼便需要很多的知識框架的構建。數電模電,計算機組成原理等等。這樣你才能明白32是怎麼工作的。

9樓:乾陵

和我一樣經歷的哥們(不過我買的是野火的Compass)

我也是直接跳過51學的32,同樣模電數電專業課還沒開,C語言跟著B站郝斌老師的網課學的(學完了,正在學他的資料結構).

我寒假前花費了不少無效的時間弄32,從開始搭建環境到學32(用的是野火家的課程),感覺欠缺的基礎知識太多,導致學習效率很低(主要是聽不懂,沒心情學) 後來按照學長的建議跳課(他主要想讓我學調庫函式).我就隨便看看前面微控制器基礎後學調庫,學用庫函式點燈才找到一些感覺。

我的學習路線是:1.先學32,基礎我先隨便聽聽,重點放在調庫,例如建工程模版,點燈,認真聽應該還是有收穫的 ,學到串列埠通訊就準備結束(暫時還沒學到)

2.學32的過程中C語言也得加強一下,感覺了解了函式,指標和結構體學32不像以前看不懂了

3.學完32我準備去學51 (想補補基礎,等我學完之後有人看再更吧)

4數電可能假期是沒時間學了,等開學後吧

這是我學32的經歷 ,請有經驗的大佬,前輩多多指正不請賜教

10樓:FPGA探索者

正常,基礎知識不夠,不要著急,慢慢來,把程式做做注釋,對照原理圖、手冊仔細看為什麼這麼程式設計。

本科生,想入門微控制器(大概就是那種興趣誘導的),應該怎麼開始?

11樓:HSK

stm32這類電子技術是需要時間的打磨、經驗的積累,剛開始學習會迷茫很正常,在完成專案的過程中你會逐漸理解stm32的底層原理的。加油!

12樓:直驅四軸機械手SCARA

說說過來人的方法:

首先,你得會C語言,會基本的邏輯操作。while for if 陣列就夠了。理解資料16進製制,2進製。能熟練的心算。

最好先學習一下51微控制器,因為簡單,好入門。51微控制器的程式比較簡單,你能通過例子程式理解精髓,微控制器的控制主要就是對外設各種暫存器內容的配置。然後你會看到一些常規的外設實現的方式。

如果實在想學stm32,只是實現一些簡單的功能,可以用別人的例子程式修改實現。

下面給你提幾個目標:

1、實現乙個可以從乙個引腳輸出一定頻率的脈衝。並且可以通過按鍵修改脈衝頻率。

2、實現乙個對上面輸出脈衝頻率的測量。(測週期,用於低頻。單位時間計數用於高頻。)

3、實現控制led的亮度的變化。可以實現比較平滑的變化。(PWM實現)

4、實現對外部輸入電壓的測量,並顯示出來。

5、串列埠通迅,實現modbus協議的解析。

6、實現lcd液晶螢幕驅動。最好用fsmc方式。

以上幾個難度都不高,例子程式也有參考的。你可以研究一下,那些例子程式可以實現上面提到的目標。

學上面幾個,建議你去看看數電的東西,分析一些內部外設是怎麼實現的。

然後去看看作業系統相關的書籍。開始再回來做下面的實驗。你會發現,你可以把作業系統裡面的各種演算法靈活運用到下面幾個目標裡面。

7、了解DMA的使用。讓串列埠的空閒中斷觸發DMA傳輸。降低微控制器的主程式負擔。

8、了解usb HID協議,實現乙個usb鍵盤。

9、 對無刷電機進行控制,簡單的可以6步換向。複製的可以用svpwm,foc。參考st的官方電機庫。

做完,基本上就夠了。

建議學著畫畫pcb。

13樓:

從51到stm32的話,首先你需要明白,我們平時說的「微控制器」到底是個什麼東西……語言什麼的反倒其次,不過也是必須學懂的。

51的控制實在是太簡單了,簡單的功能呼叫,控制訊號的話也就直接給引腳「賦值」就行了;然而實際的微控制器遠不止這點東西。我當初自學的時候走彎路摸了1個月才反應過來,你幾天看不懂很正常,特別是看到文件列出一大堆不知道什麼鬼的時候。

微控制器,指的是基礎的CPU(運算單元等)與一大堆外設封裝到乙個晶元裡。我們寫程式到CPU裡執行,控制的可不是簡簡單單的電平,而是外設,哪怕GPIO都是一種外設。外設是經過封裝的一系列電路,只漏了一些軟體介面出來(對內沒硬體介面,都同一張晶元了)。

因此想要控制微控制器硬體,唯一要做的就是通過這些介面正確地配置它們,在底層就表現為暫存器的配置,你往某些暫存器讀寫一下,外設就會收到對應的訊號觸發,完成對應的功能。

乙個外設的暫存器可能有很多,你可以參照文件和示例,看懂這個外設是怎麼工作的,有哪些東西需要配置。這些細節的教程一搜一大把。

日常碰到的外設基本就這些:

電源和復位——執行基礎,需要了解;

時鐘——執行基礎,必須掌握;

中斷——非同步互動的方式,必須掌握;

基礎外設(FLASH/GPIO等)——沒它們你基本啥也幹不了;

通訊外設(UART/I2C/SPI等)——要用啥就學啥;

其他(ADC/DAC/CMP等)——要用就學。

配置完了,再看你想做什麼事情,在上面搭想要的邏輯。

總結就是,先別急著學,弄清楚你面對的到底是個什麼東西再說

14樓:wenzi嵌入式軟體

茫然說明你還沒有掌握要領,你可以以目標為導向來學習STM32,不要按照那些商家給的資料來一章一章的學習,那會學吐了。比如說你要完成一輛基於STM32的智慧型巡線小車,那麼你從小車出發,搞明白要讓這兩小車跑起來需要微控制器執行那些外設,再針對性地去學習這些外設,慢慢地把這輛車給跑起來,這個學習方法就充滿趣味性,也就不會迷茫了

15樓:想啥做啥

這個是正常的,如果有51微控制器的基礎,那STM32快速將裡面的東西學一遍就要投入到專案中去學習,這樣的話學起來有目標,並且學的更實用

Stm32學了好久了,感覺獨立做專案還是有力不從心的感覺

wuzz 該學資料結構與演算法了,好好學,之後才能面試通過找到工作。大學學的知識專案是不能商用的,對於剛入職的畢業生,公司不會要求太高,資料結構與演算法學好最重要,現在覺得力不從力,當入職後做了乙個專案就沒困惑了。 一丁 具體的技術搞一遍就會了,難得是舉一反三,不是所有的問題專案都做過,但這些新出現...

學了stm32後,繼續下去還應該學些什麼?如果想學無人機開發,應該學什麼

Justa 通訊專業的,自己學了stm32f1和f4系列,做出來智慧型小車,帶攝像頭,LCD,六軸感測器藍芽等程度,各種協議也能簡單應用,linux嵌入式也在學習。模電,數電等學的還可以。如果繼續嵌入式的話,還應該學些什麼。如果想學無人機開發,應該學什麼。還有要不要學習資料結構與演算法?1.繼續學什...

ARM程式設計是什麼,STM32又是什麼?

醜劍客 STM32 意法半導體生產的晶元,晶元內封裝了Cortex M3 內嵌的CPU 和一些外設。ARM程式設計 採用Cortex M3支援的ARM指令對Cortex M3程式設計,基於Cortex M3和STM32晶元手冊,通過暫存器 已對映為實體地址 訪問Cortex M3和STM32提供的外...