Ⅰ、寫在前面
學習STM32開發難不難?
筆者的回答:不難!!!
為什么不難?
1、ST提供了很多很好的資源,比如:標準外設庫、多種資料(包括多版中文的翻譯版資料)等。
2、很好的集成開發環境Keil、IAR等。
3、網上很多有用的分享,包括筆者在內的愿意把技術知識無償分享出來的人。
學習STM32開發前途怎么樣?
筆者的回答:只要你技術能力夠強,月薪上萬不是問題。
要學到什么程度才能找到相關工作?
1、首先要能靈活運用C語言常用知識編程,也就是說不要求精通,但要能靈活使用基本的語法(如:switch、for、break等),還需要對指針、結構體等有一定的掌握。
2、你得有自己獨立開發的項目,項目的大小可以看得出你部分能力。
3、對STM32基本外設有部分了解并親自寫代碼驗證過。
Ⅱ、筆者想說的話
筆者覺得很多初學者不善于主動去學習,都是想利用現成的工程代碼。筆者覺得這樣學習的方法不會成就你今后的成功,人都有懶惰的一面,但現實就是這么殘酷,沒辦法,你不努力,別人就會超過你。現在大學生就業的情況,我們大家都應該知道,可以說是一年不如一年好了。每一年都有成千上萬的大學生進入社會,你在這個領域不付出點努力,總會有人在這個領域付出努力。
如今社會,不管是哪一行,競爭都很激烈。如果你決定選擇了這一行,在不得已的情況下,請不要輕言說放棄。因為你放棄了就等于否定了你當初的決定,你再去決定選擇另外一個行業,說不定今后你還會否定你當初的決定,這樣會惡性循環下去。筆者的建議是:真正想想自己喜歡哪一行、適合哪一行,想好了再做決定。
關于學習STM32,筆者覺得它真的不難,需要的是我們的耐心,我們的努力。如果你當初只是感覺喜歡學習STM32,那么請保持這份感覺。如果你在學習的時候遇到困難,失去這份感覺了,請你用不同的方法找回這份感覺。如果你想放棄這一行,請做好進入另外一行的準備。
Ⅲ、如何將工程(修改來)運行在自己開發板上
可能很多朋友的開發板、調試板上面主控芯片和筆者提供講解的工程實例不一樣,那么,只要是同一個系列(比如同為F4系列:你的是STM32F427IG、筆者的是STM32F417ZG),只要適當修改一下工程配置就能使用了。
筆者告訴大家:STM32的兼容很好,有些工程可能不用修改,直接下載都能使用。(但是,作為學習盡量自己動手驗證、如果只是測試某個功能,可以直接下載測試)。
好了,說了那么多,還是教大家如何使用我的工程:
1.了解筆者工程文件、工程結構關系
筆者使用的文件和工程結構如上圖所示的對應關系。
文件結構中Libraries就是提取ST官方的標準外設庫,對應添加到工程中(分為三類)。
文件中自定義的文件夾對應工程的一個組。
第一類(標準外設庫):
Startup Code:啟動代碼
STM32F10x_StdPeriph_Driver:標準外設庫庫驅動
CMSIS:標準接口
第二類(用戶自定義):
Bsp:應用底層代碼(初始化、驅動等)
App:應用實現代碼(配置OS、應用等)
第三類(描述):
Doc:ReadMe.txt描述文檔,不會執行編譯
2.同系列修改型號
同一系列(我們以F4系列為例,其他系列F0、F1這些原理一樣)芯片的工程,如果資源都有,工程可以共用,只需要修改一下工程里的型號就行。
我們以F4工程為例,STM32F417ZG-> STM32F427IG修改方法如下三步驟。
參考工程下載地址:
https://yunpan.cn/cBQiZXDsvacwV 訪問密碼 a98e
1.修改工程配置型號
project ->Options for Target -> Device 修改為自己芯片的型號
修改方式如下動畫:
2.修改源文件型號
筆者習慣在工程文件里面修改型號,原因在于這里可以看見具體的型號,也知道宏定義的名稱(如:STM32F40_41xxx)。
其實,這個宏定義在工程配置中也可以定義,根據自己習慣選擇定義。
修改方式如下動畫:
3.修改啟動文件
啟動文件和芯片型號對應的關系,比較簡單,如下動畫:
3.應用相關
筆者提供的實例代碼都是簡化了很多無用的代碼、比較基礎的、容易理解的,基本上都是提供LED、USART1、TIM延時這種在所以芯片都有的功能。
如果你LED不是筆者提供例程里面的,很簡單,在bsp.h文件下改一下對應IO口就行了。
如果你串口是使用USART2,只要usart.c文件下修改相關配置就行了。
-
ST
+關注
關注
32文章
1134瀏覽量
129014 -
STM32
+關注
關注
2270文章
10910瀏覽量
356580 -
開發板
+關注
關注
25文章
5081瀏覽量
97696
發布評論請先 登錄
相關推薦
OpenHarmony怎么修改DPI密度值?觸覺智能RK3566鴻蒙開發板演示
![OpenHarmony怎么<b class='flag-5'>修改</b>DPI密度值?觸覺智能RK3566鴻蒙<b class='flag-5'>開發板</b>演示](https://file1.elecfans.com/web3/M00/03/8B/wKgZPGdqLoyAKZgAAAB1wHV_XdE820.png)
正點原子的stm32開發板能用stlink嗎
開發板的PL端有4片的DDR,怎么管理數據的傳輸
【QEMU系列】不用開發板運行RT-Thread指南-ARM架構
![【QEMU系列】不用<b class='flag-5'>開發板</b><b class='flag-5'>運行</b>RT-Thread指南-ARM架構](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
鴻蒙OpenHarmony南向/北向快速開發教程-迅為RK3568開發板
MCU友好過渡MPU,米爾基于STM32MP135開發板裸機開發應用筆記
基于STM32H743IIT6開發的代碼,是否能不經修改無障礙地運行在STM32H753IIT6上?
fpga開發板是什么?fpga開發板有哪些?
如何在PSoC62 Evaluation kit開發板上運行RT-Thread呢?
![如何在PSoC62 Evaluation kit<b class='flag-5'>開發板</b><b class='flag-5'>上</b><b class='flag-5'>運行</b>RT-Thread呢?](https://file1.elecfans.com/web2/M00/C1/40/wKgZomXdTiCALqQxAABSO4fFgn4963.jpg)
請問可以利用RT-Thread修改屬于自己的開發板包?
ELF 1技術貼|如何將Python3.6.9移植到開發板上
![ELF 1技術貼|<b class='flag-5'>如何將</b>Python3.6.9移植到<b class='flag-5'>開發板</b><b class='flag-5'>上</b>](https://file1.elecfans.com/web2/M00/C0/94/wKgZomXW5EiAf1EoAABBQv84DIc700.png)
fpga開發板與linux開發板區別
如何將Go程序編譯到ELF 1開發板
![<b class='flag-5'>如何將</b>Go程序編譯到ELF 1<b class='flag-5'>開發板</b>](https://file1.elecfans.com/web2/M00/BF/AB/wKgaomW3EI2ATDMYAAA-5DlZSrs087.png)
評論